Сполски об оптимизации

As a programmer, thanks to plummeting memory prices, and CPU speeds doubling every year, you had a choice. You could spend six months rewriting your inner loops in Assembler, or take six months off to play drums in a rock and roll band, and in either case, your program would run faster [...] The developers who ignored performance and blasted ahead adding cool features to their applications will, in the long run, have better applications.

Отсюда, но вообще заметка не про это.

Дальше
6 комментариев
KDA 2007

And those developers will be burning in hell...

Baka 2007

As a user, I don’t see any program running faster.
No matter if I play any drum or not.
Unless I earn money by playing drums to get a new computer each six months.

Spectator 2007

Он бредит.

Упущен «нюанс» — далеко не все пользователи апгрейдят CPU каждые полгода/год.

Илья Бирман 2007

Ну это short term, в его терминологии ;-)

Алексей Ольшанский 2007

Как всегда, выиграют те, кто сделает и быстрее, и функциональнее.

Shade 2007

спасибо за ссылку на комментарии. не прошло и двух лет, как я просил.

Илья Бирман 2007

Да. Выяснилось, что все РСС-читалки — говно :-)

Mercury 2007

Не так просто с этой оптимизацией. «Оперу»-то разработчики ради чего-то оптимизируют? Надо играть на барабане вместо излишней оптимизации и не чхать на необходимую.

Пример из собственной жизни. Задача: сделать (на Delphi) поддержку текстовых файлов, которая автоматически определяет тип из четырёх возможных: ASCII, Motorola UTF-16, Intel UTF-16 или UTF-8. Сделал на основе считывания по одному-два байта, вроде работает... И оставил года этак на полтора. Года через полтора поднял его — оказывается, файл длиной 300 килобайт читает 10 секунд! Это уже недопустимая задержка, файл должен грузиться за доли секунды.

Выяснилось: виной всему внутренняя кухня паскалевского типа String. Решил делать так, чтобы длина строки менялась как можно реже — читаем кусок файла в буфер, а затем, когда надо, расширяем строку командой SetLength и в это место командой Move переносим большой кусок строки. И три версии такой функции — Ascii, Native byte order (Intel), Swapped byte order (Motorola). Всё это заняло один рабочий день. Но, думаю, оптимизация оправдала себя.

Мои книги