diff options
| author | Hana Kim <hakim@google.com> | 2018-02-06 14:34:32 -0500 |
|---|---|---|
| committer | Hyang-Ah Hana Kim <hyangah@gmail.com> | 2018-03-07 14:33:54 +0000 |
| commit | ee465831eccef9d8380a0cbfbb526684399d35eb (patch) | |
| tree | 30365c31df01e1d83a3173031f4828d28b621233 /src/cmd/trace/trace_unix_test.go | |
| parent | 083f3957b8266d591db4147bd03dd16874635189 (diff) | |
| download | go-ee465831eccef9d8380a0cbfbb526684399d35eb.tar.xz | |
cmd/trace: generate jsontrace data in a streaming fashion
Update #21870
The Sys went down to 4.25G from 6.2G.
$ DEBUG_MEMORY_USAGE=1 go tool trace trace.out
2018/03/07 08:49:01 Parsing trace...
after parsing trace
Alloc: 3385757184 Bytes
Sys: 3661195896 Bytes
HeapReleased: 0 Bytes
HeapSys: 3488841728 Bytes
HeapInUse: 3426516992 Bytes
HeapAlloc: 3385757184 Bytes
Enter to continue...
2018/03/07 08:49:18 Splitting trace...
after spliting trace
Alloc: 2352071904 Bytes
Sys: 4243825464 Bytes
HeapReleased: 0 Bytes
HeapSys: 4025712640 Bytes
HeapInUse: 2377703424 Bytes
HeapAlloc: 2352071904 Bytes
Enter to continue...
after httpJsonTrace
Alloc: 3228697832 Bytes
Sys: 4250379064 Bytes
HeapReleased: 0 Bytes
HeapSys: 4025647104 Bytes
HeapInUse: 3260014592 Bytes
HeapAlloc: 3228697832 Bytes
Change-Id: I546f26bdbc68b1e58f1af1235a0e299dc0ff115e
Reviewed-on: https://go-review.googlesource.com/92375
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Peter Weinberger <pjw@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/trace/trace_unix_test.go')
| -rw-r--r-- | src/cmd/trace/trace_unix_test.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/cmd/trace/trace_unix_test.go b/src/cmd/trace/trace_unix_test.go index 1c0d76fa3f..19a8af0d4d 100644 --- a/src/cmd/trace/trace_unix_test.go +++ b/src/cmd/trace/trace_unix_test.go @@ -9,6 +9,7 @@ package main import ( "bytes" "internal/trace" + "io/ioutil" "runtime" rtrace "runtime/trace" "sync" @@ -79,14 +80,8 @@ func TestGoroutineInSyscall(t *testing.T) { // Check only one thread for the pipe read goroutine is // considered in-syscall. - viewerData, err := generateTrace(&traceParams{ - parsed: res, - endTime: int64(1<<63 - 1), - }) - if err != nil { - t.Fatalf("failed to generate ViewerData: %v", err) - } - for _, ev := range viewerData.Events { + c := viewerDataTraceConsumer(ioutil.Discard, 0, 1<<63-1) + c.consumeViewerEvent = func(ev *ViewerEvent, _ bool) { if ev.Name == "Threads" { arg := ev.Arg.(*threadCountersArg) if arg.InSyscall > 1 { @@ -94,4 +89,12 @@ func TestGoroutineInSyscall(t *testing.T) { } } } + + param := &traceParams{ + parsed: res, + endTime: int64(1<<63 - 1), + } + if err := generateTrace(param, c); err != nil { + t.Fatalf("failed to generate ViewerData: %v", err) + } } |
