Сегодня мы будем анализировать бинарники на пару с CPU профилями, чтобы создать на их основе расширенные профили исполнения. Эти дополненные профили мы сможем использовать для оценки времени, которое программа тратит на проверки выхода за границу массивов и слайсов.
Рубрика «pprof»
Анализируем bound checks в Go по CPU профилю
2022-02-13 в 10:42, admin, рубрики: amd64, asm, cpuprofile, Go, golang, performance, pprof, profiling, static analysis, высокая производительность, Компиляторы, системное программированиеПростые методы оптимизации программ Go
2019-06-20 в 20:55, admin, рубрики: easyjson, Go, json, pprof, sync.Pool, бенчмарки, маршалинг, Программирование, Проектирование и рефакторинг, профилированиеЯ всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.
В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com
По опыту, низкая производительность проявляется одним из двух способов:
- Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
- Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».
Создание кастомных Go-профилей с помощью pprof. Запоминаем стеки
2017-01-17 в 8:49, admin, рубрики: Go, perf, performance, pprof, profiling, Блог компании Badoo, отладка, Программирование, Тестирование IT-систем
Кадр из сериала «Коломбо»
Go-шный пакет pprof часто используется для профилирования процессора или памяти, но не все знают о возможности создавать собственные кастомные профили. Они могут быть полезны для поиска утечек ресурсов или, например, для слежения за злоупотреблением какими-нибудь тяжелыми вызовами.
Читать полностью »