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

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). Всё это заняло один рабочий день. Но, думаю, оптимизация оправдала себя.

Мои книги