7

pprof を使用してヒープをプロファイリングすると、次のようになります。

ここに画像の説明を入力

ただし、その視覚化をどのように解釈するかについては明確ではありません。特に:

「矢印の横のメモリは_____を意味し、ボックス内のメモリは_____を意味します。したがって、ボックスに複数の矢印がある場合は_____を意味し、ボックスに複数の矢印がある場合は_____を意味します」.

4

1 に答える 1

15
  1. すべてのサブ関数を含む、この関数の認識された累積メモリ消費量
  2. すべてのサブ関数を除いた、この関数の認識されたメモリ消費量
  3. 複数のサブ関数を呼び出すこと
  4. 複数の関数がそれを呼び出す

ヒープと CPU プロファイリング モードの矢印の意味に違いはありません。

pprof コマンドの出力に興味があるかもしれませtopん。結果は次の形式で得られます。

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

そして、ここに (IMHO) pprof を使用した Go ヒープ プロファイリングの 2 つの最良の参照があります。

  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
于 2016-03-08T16:24:36.543 に答える