Сергей Мельников
Компания: Dijkstra Markets
Оптимизация производительности кода — ключевой вызов для разработчиков, особенно когда небольшой участок кода работает медленно. В докладе рассмотрим различные подходы к профилированию, их достоинства и недостатки, а также современные технологии. Начнем с постановки проблемы медленного выполнения небольших кусков кода и перейдем к обзору профилировщиков, сравнивая статистические и трассирующие методы. Обсудим основные недостатки статистических профилировщиков и их влияние на точность результатов, а затем рассмотрим способы минимизации накладных расходов в трассирующих профилировщиках. Простыми методами использования счетчиков производительности, такими как в async-profiler, упростим профилирование. Изучим, как эффективно анализировать профили с помощью FlameChart.
Затем перейдем к аппаратным технологиям, таким как processor trace, рассмотрим ее поддержку и ожидаемые результаты. Практическое руководство по сбору трассы с помощью агента perf
, добавлению символов и интерпретации данных позволит вам начать работать с этой технологией. Поговорим о том, почему FlameChart не всегда помогает и как использовать стандартный TUI от perf для анализа больших объемов данных. Обзор современных визуализаторов данных, таких как решения от Jane Street и других, поможет вам выбрать лучший инструмент для визуализации. Наконец, рассмотрим режим снимков для perf-pt
, который позволяет захватывать данные с высокой детализацией.
Доклад будет полезен разработчикам, стремящимся к оптимизации производительности приложений с помощью современных технологий.
Компания: Dijkstra Markets
Компания: Сбер