Web サーバーを構築し、ab(apache ベンチマーク)テストを行いました。次に、各部分の計算時間を知りたいです。
を使用してgo tool pprof url:port/xxx
このプログラムのプロファイルを取得しましたが、計算時間はわかりません(メモリしかありません)。結果は次のとおりです。
(pprof) top10
1827.59MB of 1978.12MB total (92.39%)
Dropped 175 nodes (cum <= 9.89MB)
Showing top 10 nodes out of 48 (cum >= 43.50MB)
flat flat% sum% cum cum%
769.54MB 38.90% 38.90% 769.54MB 38.90% reflect.unsafe_New
459.08MB 23.21% 62.11% 459.08MB 23.21% services/semanticnew.TopicProbCounter.Update
189.17MB 9.56% 71.67% 1081.21MB 54.66% github.com/golang/protobuf/proto.(*Buffer).dec_slice_struct
122MB 6.17% 77.84% 122MB 6.17% github.com/golang/protobuf/proto.(*Buffer).dec_int32
107.56MB 5.44% 83.28% 107.56MB 5.44% github.com/garyburd/redigo/redis.(*conn).readReply
68.13MB 3.44% 86.72% 527.21MB 26.65% services/semanticnew.caculApPoiScore
40.51MB 2.05% 88.77% 40.51MB 2.05% runtime.malg
28.59MB 1.45% 90.22% 28.59MB 1.45% net/http.newBufioWriterSize
22.50MB 1.14% 91.35% 23MB 1.16% redismanage.(*Manager).getRequest
20.50MB 1.04% 92.39% 43.50MB 2.20% redismanage.(*Manager).GetRequest
私の Web プログラムでは、次のコードを追加しました。
f, _ := os.Create("x.cpuprofile")
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
それでもうまくいきません。
http://blog.golang.org/profiling-go-programsを確認しましたが、xxx.prof
ファイルが混乱しました。xxx.prof
このファイルを生成するにはどうすればよいですか? と作者が使っgo tool pprof xxx xxx.prof
ていたxxx
のですが、 で生成されたバイナリファイルということxxx.go
ですか?
とにかく、ターゲットは計算時間を取得していますが、どのように? xxx.prof
この目標を達成するには、このファイルを生成する必要がありますか?
どうもありがとう