#go #pprof
#Вперед #pprof
Вопрос:
Описание
Я пытаюсь использовать pprof для профилирования моей программы, и я использую
import _ net/http/pprof to add /debug/pprof endpoints in my service.
доступ в браузере:
http://ip:port/debug/pprof/
тогда у меня будет следующая страница:
Каждый раз, когда я пытаюсь обновить эту страницу, число в полях продолжает увеличиваться!!
Когда я перехожу по ссылке:http://ip:port/debug/pprof/heap ?debug=1
я увижу следующее:
здесь 4 числа :
2508: 273338776 [4733405: 12257136096]
означает inuse_objects: inuse_space [все_объекты: alloc_space], я прав?
Вопрос
Что на самом деле означают эти два числа в полях?
Имеет ли «количество кучи» какое-либо отношение к inuse_objects
?
Ответ №1:
Проверка шаблона для индексной страницы показывает, что подсчет производится pprof.Профиль.Количество:
Count возвращает количество стеков выполнения, находящихся в данный момент в профиле.
Другими словами, страница индекса показывает количество выборок, которые были собраны для каждого типа профиля на данный момент. Они не связаны с какой-либо конкретной метрикой, такой как inuse_objects или inuse_space.
Комментарии:
1. Указывает ли увеличение этих двух чисел на утечку памяти?
2. @kvh, нет, совсем нет. Это означает, что со временем в профиль добавляется больше выборок. Очевидно, что поведение программы может меняться со временем, поэтому непрерывное профилирование вполне ожидаемо.