Профилирование приложений для оптимизации их работы
Привет!
Для поиска проблем в работающем ПО зачастую обращаются к логам. Но этого может быть не всегда достаточно.
В статье автор предлагает рассмотреть возможность профилирования приложения для идентификации «проблемных мест» (bottlenecks).
Основная цель профилирования – оптимизация эффективности работы, что достигается за счет анализа потребления памяти, времени выполнения отдельных функций и т.д.
В качестве инструмента рассматривается open source продукт – Pyroscope. Автор приводит принципы его работы, сведения о поддерживаемых языках и об архитектуре.
В завершении – установка, настройка и несколько примеров встраивания для Python, .Net и Golang.
Полученную информацию можно фильтровать и анализировать для того, чтобы идентифицировать наиболее ресурсоемкие/длительные операции и разбираться «а должно ли оно быть так на самом деле?»
P.S. Ссылка на открытую документацию Pyroscope
Post #421
960