Visualizing Performance - The Developers’ Guide to Flame Graphs • Brendan Gregg • YOW! 2022
Интересный доклад про визуализацию производительности при помощи Flame graphs от Brendan Gregg, который их когда-то и придумал. Помимо этого он придумал еще и USE методологию (utilization, saturation и errors). Конкретно в этом докладе Грегг рассказывает про
- Какие существуют реализации flame graphs
- Как работают flame graphs для профилирования использования CPU и как он дошел до их изобретения (spoiler: через flame charts)
- Какие были проблемы со стеками и символами - тут Грегг делится тем, что пришлось доделывать в gcc, java, jit symbols, чтобы стеки в профилировщике работали правильно
- Куда еще можно вкрутить flame graphs для улучшения визуализации - например, page faults, disk i/o requests, tcp events, cpu cache misses, ... А еще чем так хорош eBPF для отслеживания проивзодительности:)
В общем, это полезный доклад, даже если вам не часто приходиться заниматься оптимизацией проивзодительности приложения:)
P.S. А еще у Грегга есть крутая книга "Systems Performance (Addison-Wesley Professional Computing Series) 2nd Edition", но я ее пока не читал:)
#Performance #Software #SoftwareDevelopment #SystemDesign