2016-10-14 5 views
1

私はGoプログラムがメモリをたくさん取っていることに気がつきましたが(それ以上のことは期待しています)、理由は分かりません。私はpprofとメモリとメモリプロファイリングpprof TOP5の結果をプロファイリングすることを決めた のようなある:Goメモリプロファイリング

1140.28MB of 1169.97MB total (97.46%) 
Dropped 61 nodes (cum <= 5.85MB) 
Showing top 5 nodes out of 15 (cum >= 33.89MB) 

私の問題は、以下のとおりです。このプロファイルでは、プログラムがおよそ1.2GBのメモリを消費していることがわかりました(これは、私がやっていることのために手ごろな価格で、ログの解析とインデックス作成に費やされます)。しかし、私が「トップ・コマンド」を実行して自分のプログラムで使用される常駐メモリを見ると、メモリ・プロファイリングとかなり大きな違いがあるのは、プログラムによって10GBから11GB程度のメモリが使用されていることになります。

私はプロファイルに表示されていないそれらのメモリはどこですか? なぜですか? トラブルシューティングの方法事前による

おかげで、

+0

? (http/pprofフックを使用している場合は '/ debug/pprof/heap'にも表示されます) – JimB

答えて

0

これは、余分なメモリ使用量は、ESP、ファイルシステムからのものであること可能性があります。おそらく大量のディスクをスキャンしているからです。

参照: `runtime.MemStats`は、この時点では何のhttp://www.linuxatemyram.com/