О методологии анализа производительности

     Пришло время поделится знаниями о природе анализа производительности, точнее поделится некой методологией поиска возможностей улучшения производительности приложений. Эта методология была выработана (или освоена) в недрах новосибирской команды анализа производительности за 7 лет существования этой команды. Данная методология отталкивается в основном от существующих возможностей компилятора + знаниях о существующих оптимизационных методах. Задача команды анализа производительности не просто изменять код существующих приложений, но и добиваться того, чтобы в конечном итоге хорошие результаты демонстрировал наш компилятор, т.е. все предложенные изменения кода приложения были осознаные и укладывались в рамки определенной концепции способной быть воспроизведенной в компиляторе. Поэтому мы должны отталкиваться от уже реализованных функциональностей и добиваться их лучшей работы за счет расширения их возможностей и за счет более качественных механизмов оценки эффектов от той или иной оптимизации + предлагать реализацию технически обоснованных оптимизаций. Для движения вперед нужно понять:  "Где мы находимся и что уже умеем?"  "Что мы не умеем и почему?" "Куда можно двигаться дальше?"

   Я планирую написать серию статей, которая будет включать в себя описание наиболее важных факторов, влияющих на производительность, различных компиляторных методов улучшения производительности, конкретных рекомендаций разработчикам, которые они смогут (я надеюсь) использовать для получения более производительных приложений. 

  На данный момент на www.habrahabr.ru опубликовано 3 поста:

Существует ли простая оценка качества оптимизации приложения?

Основные проблемы влияющие на производительность вычислительного ядра и приложения и методы их решения компилятором.

Разбиение цикла как пример высокоуровневой оптимизации.

Ждет в черновиках своей очереди на опубликование пост "Презумпция виновности программиста или почему компилятор иногда "тупит" - следите за блогом Интел на хабре.

   В ближайшее время я планирую обсудить автовекторизацию и автопараллелизацию.

        

Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.