Интерпретация диаграмм кучи pprof

Когда я профилирую кучу в go с pprof, я получаю следующее:

введите описание изображения здесь

Тем не менее, я не понимаю, как интерпретировать эту визуализацию. Особенно:

"Память рядом со стрелками означает _____, а память внутри ящика означает ______. Поэтому, когда у ящика есть несколько стрелок из него, это означает _____, а когда у него есть несколько стрелок, это означает _____".

1 ответ

Решение
  1. воспринимаемое совокупное потребление памяти этой функцией, включая все ее подфункции
  2. воспринимаемое потребление памяти этой функцией, исключая все ее подфункции
  3. что он вызывает несколько подфункций
  4. что несколько функций называют это

Нет разницы между значениями стрелок между кучей и режимом профилирования процессора.

Вы можете быть заинтересованы в выводе top Команда pprof, которая может дать вам результаты в следующей форме:

9701.61kB of 9701.61kB total (  100%) Dropped 112 nodes (cum <=
48.51kB) Showing top 10 nodes out of 29 (cum >= 3611.54kB)
      flat  flat%   sum%        cum   cum%
 4549.72kB 46.90% 46.90%  4549.72kB 46.90%  mystery.function
 2587.52kB 26.67% 73.57%  2587.52kB 26.67%  reflect.unsafe_NewArray
 1024.02kB 10.56% 84.12%  1024.02kB 10.56%  encoding/xml.copyValue
     514kB  5.30% 89.42%      514kB  5.30%  compress/gzip.NewReader
     514kB  5.30% 94.72%      514kB  5.30%  net/http.(*Transport).dialConn
  512.34kB  5.28%   100%   512.34kB  5.28%  runtime.makeslice
         0     0%   100%      514kB  5.30%  bytes.(*Buffer).ReadFrom
         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).Decode
         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).DecodeElement
         0     0%   100%  3611.54kB 37.23%  encoding/xml.(*Decoder).unmarshal

И вот (ИМХО) две лучшие ссылки для профилирования кучи Go с помощью pprof:

  1. https://google-perftools.googlecode.com/svn/trunk/doc/heapprofile.html
  2. https://software.intel.com/en-us/blogs/2014/05/10/debugging-performance-issues-in-go-programs
Другие вопросы по тегам