> Экономить на вызовах fwrite. Для этого процессим числа в блоках, кратных 15. Я остановился на 35000 блоках. Дает небольшой выигрыш
Сомневаюсь, что это дает какой-то выигрыш, поскольку fwrite() уже буферизован. Возможно, если поиграть с размером буфера, используя setvbuf(), можно что-то выиграть, но это какие-то сущие копейки будут.
> Поддерживать текущее число в виде строки и эмулировать инкремент. Ускоряет за счет того, мы не всегда итерируемся по всем цифрам текущего числа (гораздо чаще инкрементится только последняя цифра).
Примерно эта идея и была использована в reusebuffer.c, только сразу для всего буфера.
> Мелкие микрооптимизации, которые почти ни на что не повлияли (например, полное избавление от деления и взятия по модулю при инкременте)
В customprint.c нет деления по модулю, я от него избавился шагом раньше, в unrolled.c (ну если не считать обработки хвоста, то его нет смысла хоть как-то оптимизировать, цикл на 10 итераций).
Более-менее используется память в последнем варианте — для каждого потока выделяется буфер в 3M * 119 байт / 15 = 22.7 Mb, для 4 потоков выходит 91 Mb. Все остальные варианты очень скромные по памяти.
Я проверял — одинаково правильно :)
Просто проверять каждый раз 7.5-гиговый файл довольно муторно, я проверил первый, а дальше просто сверял размер и контрольные суммы
Проблема с трудоустройством после какого-то возраста действительно наступает.
Мне 48, из них последние 30 занимаюсь программированием, CV соответствующее, но сколько его не посылал — ноль реакции. Убрал из CV дату рождения и самые старые места работы (хотя там было чем похвастаться), так что можно предположить, что мне лет 35 каких — стал получать приглашения на интервью.
И это несмотря на то, что все работодатели гордо пишут всякое типа equal opportunity employer. Причины у работодателей могут быть разные, но выходит, что возраст надо скрывать.
Of course, 1964 was the year in which IBM announced the 360. I was extremely cross with Gerry Blaauw, because there were serious flaws built into the I/O organization of that machine. He should have known about the care that has to go into the design of such things, but that was clearly not a part of the IBM culture. In my Turing Lecture I described the week that I studied the specifications of the 360, it was [laughter] the darkest week in my professional life. In a NATO Conference on Software Engineering in 1969 in Rome, I characterized the Russian decision to build a bit-compatible copy of the IBM 360 as the greatest American victory in the Cold War.
То есть он говорил о том, что IBM 360 плохая, и поэтому хорошо, что СССР пошел по неправильному пути.
Сомневаюсь, что это дает какой-то выигрыш, поскольку fwrite() уже буферизован. Возможно, если поиграть с размером буфера, используя setvbuf(), можно что-то выиграть, но это какие-то сущие копейки будут.
> Поддерживать текущее число в виде строки и эмулировать инкремент. Ускоряет за счет того, мы не всегда итерируемся по всем цифрам текущего числа (гораздо чаще инкрементится только последняя цифра).
Примерно эта идея и была использована в reusebuffer.c, только сразу для всего буфера.
> Мелкие микрооптимизации, которые почти ни на что не повлияли (например, полное избавление от деления и взятия по модулю при инкременте)
В customprint.c нет деления по модулю, я от него избавился шагом раньше, в unrolled.c (ну если не считать обработки хвоста, то его нет смысла хоть как-то оптимизировать, цикл на 10 итераций).
Просто проверять каждый раз 7.5-гиговый файл довольно муторно, я проверил первый, а дальше просто сверял размер и контрольные суммы
Мне 48, из них последние 30 занимаюсь программированием, CV соответствующее, но сколько его не посылал — ноль реакции. Убрал из CV дату рождения и самые старые места работы (хотя там было чем похвастаться), так что можно предположить, что мне лет 35 каких — стал получать приглашения на интервью.
И это несмотря на то, что все работодатели гордо пишут всякое типа equal opportunity employer. Причины у работодателей могут быть разные, но выходит, что возраст надо скрывать.
Он сказал:
То есть он говорил о том, что IBM 360 плохая, и поэтому хорошо, что СССР пошел по неправильному пути.