大きなファイルの受信と GCS への送信に関連するメモリ リークが発生しているようです。appengine コードのメモリ使用量をプロファイリングするために pprof を使用しようとしています。私のテストでは appengine/aetest を使用しており、メモリ プロファイルを出力できますが、結果は役に立たないようです。
まず、ベンチマークを作成しました。これは非常に遅い操作であるため、一度しか実行されません。
$ goapp test ./cloudstore -run=none -bench=. -memprofile=cloud.prof
BenchmarkLargeFile 1 54124706398 ns/op
$ go tool pprof --text cloudstore.test cloud.prof
Adjusting heap profiles for 1-in-524288 sampling rate
Total: 0.5 MB
0.5 100.0% 100.0% 0.5 100.0% runtime.newG
0.0 0.0% 100.0% 0.5 100.0% allocg
0.0 0.0% 100.0% 0.5 100.0% mcommoninit
0.0 0.0% 100.0% 0.5 100.0% runtime.malg
0.0 0.0% 100.0% 0.5 100.0% runtime.mpreinit
0.0 0.0% 100.0% 0.5 100.0% runtime.rt0_go
0.0 0.0% 100.0% 0.5 100.0% runtime.schedinit
私の関数呼び出しは何も表示されず、この 0.5 MB の数値は明らかに正しくありません (12 MB のファイルを開いてアップロードしています)。実際のメモリ プロファイルを取得するにはどうすればよいですか?
$ go version
go version go1.3.1 linux/386
$ goapp version
go version go1.4.2 (appengine-1.9.25) linux/386