Сполски об оптимизации
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.
Отсюда, но вообще заметка не про это.
And those developers will be burning in hell...
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.
Он бредит.
Упущен «нюанс» — далеко не все пользователи апгрейдят CPU каждые полгода/год.
Ну это short term, в его терминологии ;-)
Как всегда, выиграют те, кто сделает и быстрее, и функциональнее.
спасибо за ссылку на комментарии. не прошло и двух лет, как я просил.
Да. Выяснилось, что все РСС-читалки — говно :-)
Не так просто с этой оптимизацией. «Оперу»-то разработчики ради чего-то оптимизируют? Надо играть на барабане вместо излишней оптимизации и не чхать на необходимую.
Пример из собственной жизни. Задача: сделать (на Delphi) поддержку текстовых файлов, которая автоматически определяет тип из четырёх возможных: ASCII, Motorola UTF-16, Intel UTF-16 или UTF-8. Сделал на основе считывания по одному-два байта, вроде работает... И оставил года этак на полтора. Года через полтора поднял его — оказывается, файл длиной 300 килобайт читает 10 секунд! Это уже недопустимая задержка, файл должен грузиться за доли секунды.
Выяснилось: виной всему внутренняя кухня паскалевского типа String. Решил делать так, чтобы длина строки менялась как можно реже — читаем кусок файла в буфер, а затем, когда надо, расширяем строку командой SetLength и в это место командой Move переносим большой кусок строки. И три версии такой функции — Ascii, Native byte order (Intel), Swapped byte order (Motorola). Всё это заняло один рабочий день. Но, думаю, оптимизация оправдала себя.