SUN STUDIO PERFORMANCE ANALYSER
Алексей Лапшин – Sun Microsystems, Санкт-Петербург, Россия – Alexey.Lapshin@sun.com
LVEE 2007
Выполнен обзор возможностей Sun Studio Performance Analyser. Рассмотрены анализ и оптимизация нативных(С/C++/Fortran) и Java-приложений на Solaris/OpenSolaris/Linux OC.
Нередко перед разработчиком встает вопрос – “почему моя программа работает недостаточно быстро?” В этот момент необходим эффективный способ избавиться от тормозящих факторов. Даже в несложной программе таких составляющих достаточно: неэффективный алгоритм, ожидание ресурсов, зависимость по данным и проч. В больших программных комплексах решение этих вопросов может превратиться в головную боль на долгое время. Ниже рассматривается использование Sun Studio Performance Analyser для поиска и анализа проблем производительности как нативных(С/C++/Fortran) так и Java – приложений, что позволяет сократить время разработки и повысить скорость работы приложения.
Sun Studio Performance Analyser предоставляет пользователю широкий спектр возможностей(GUI и CLI интерфейсы) для профилировки разных типов приложений. Также имеется возможность генерации множества представлений результата эксперимента.
Примеры профилировки программ на языке С демонстрируют преимущества Sun Studio Performance Analyser при поиске и анализе неэффективно написанного цикла. Простые преобразования исходного кода могут ускорить выполнение на порядок. Аналогичный результат может быть достигнут при использовании оптимальных ключей компиляции из командной строки.
Рассматривая те же примеры на java можно заметить, что одинаковые проблемы имеют одинаковые решения вне зависимости от исходного языка программирования. Sun Studio Performance Analyser позволяет исследовать как java byte-code, так и оптимизированные Java HotSpot VM функции.
Казалось бы, профилировка программы с использованием библиотеки OpenMP не должна ухудшать быстродействие приложения. Однако на практике OpenMP иногда приводит не к ускорению, а замедлению программы. Нами исследован ряд случаев на предмет способов поиска и решения проблем.
Использование Sun Studio Performance Analyser предоставляет также средства для профилирования функций Solaris kernel, Thread Analyzer (включая GUI и CLI интерфейсы) и другие возможности.