2017-06-28 8 views
0

私は現在、データベースからデータをロードし、計算を実行し、結果を同じデータベースに保存するGoプログラムに取り組んでいます。複数のゴルーチンがあります。私のコードはGolangメモリプロファイラの出力には表示されません

ランタイム(5-6分)は驚くほど長くなりました。このarticleに続いてCPUプロファイリングを行い、CPU時間の70%以上がガベージコレクション関連のコードが実行されていることが判明しました。

今、私はメモリプロファイリングを試みましたが、私のコードは結果に表示されません。これは初めてプログラムをプロファイリングするときです。プログラムの最適化の方法や問題を探す場所がわかりません。私はどんな助けにも感謝します。事前に

enter image description here

ありがとう!

+3

まずを用いて、例えば、累積の代わりにフラットでソートしてみてください。それはあなたのコードがあなたのメモリを割り当てるstdlibコードを呼び出すのかを示すものです。たとえば、 'top10 -cum'を使用して、10人の累積メモリユーザーを得ます。 – Adrian

+0

愚かな私...ありがとう! – maestromusica

答えて

0

エイドリアンのコメントで指摘したように、「問題」が単に累積の代わりにフラットでソートすることによって解決され、全てのtop10 -cum

関連する問題