mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
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>
This commit is contained in:
parent
083f3957b8
commit
ee465831ec
4 changed files with 217 additions and 108 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue