Статья The Three Stages of Preparation for Optimizing Parallel Software в Dr.Dobb. Хотя она, якобы, описывает стадии подготовки к оптимизации параллельного кода, ее рекомендации можно использовать и для оптимизации однопоточных программ.
На мой взгляд, большинство советов в ней – довольно банальные. Но некоторые весьма дельные. Как то:
Делайте подробные заметки. Записывайте все, что вы делаете с программой и зачем вы это делаете. Заметки, которые вы сделаете во время выполнения текущего проекта – это основа для базы знаний (даже если она неформальна), такая база может сделать ваш следующий проект более успешным. Эти заметки должны описывать такие открытия как, например, обнаруженные в генераторе нагрузки дефекты и способы их устранения.
Не вносите более одного изменения за раз. Особенно при оптимизации для параллельных платформ, т.к. эффект от сделанных вами изменений может быть не таким как вы ожидаете. Если вы сделали более одного изменения между замерами, их эффекты могут компенсировать друг друга, а в случае отрицательного результата вы не будете знать, какое изменение тому виной.
Еще мне понравилось, что кроме советов о том, что нужно делать, она еще и дает советы о том, чего делать не нужно. Так что, если вам ранее не приходилось плотно заниматься оптимизацией и вы еще не успели набить шишек на этом пути, то имеет смысл эту статью прочитать.
PS. Хочу спросить читателей моего блога – нужно ли мне переводить англоязычные цитаты на русский язык? Сам-то я технический английский читаю довольно легко. Но может я напрасно требую этого же от своих читателей?
Несмотря на то, что я тоже достаточно легко читаю технические тексты по английски, мне было бы удобно, если бы ты переводил цитаты.
ОтветитьУдалитьЕсли честно, сейчас я, читая твой блог, скипаю англоязычные цитаты, а иногда и посты, где таких цитат много.
Вообще интересно именно твоё изложение даже, а не дословный перевод.
Я по английски понимаю только то, о чем уже есть представление. Например пока не встретил на русском что для получения сообщений о смене режима питания на PDA нужно создать и передать очередь ядру ОСи - ничего не понимал и с детального описания на английском - как сделать. Как понял общую идею, так разъяснения деталей на английском очень пригодились.
ОтветитьУдалитьВ Вашем блоге английский текст пропускаю :) Любопытно - но как раз общего представления нет, а потому - "ничего не понимаю" :)
Lamer, Skynin -- спасибо за то, что высказались.
ОтветитьУдалитьТеперь буду стараться переводить цитаты на русский. В данном посте это я уже сделал.