diff options
author | Dan Willemsen <dwillemsen@google.com> | 2015-09-15 13:49:18 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2015-09-15 13:51:48 -0700 |
commit | 6ff23253f8283d0c81c9db51c2d7803e086c93ad (patch) | |
tree | d70b53746897f5f6a71c19b7c062a079b4f54001 /test/init1.go | |
parent | 1630e73131c3c8cc2a16baa2aefe3b9b82de658b (diff) | |
download | linux-x86-brillo-m10-release.tar.gz |
Update prebuilts to go 1.5.1android-n-preview-2android-n-preview-1brillo-m9-releasebrillo-m9-devbrillo-m8-releasebrillo-m8-devbrillo-m7-releasebrillo-m7-mr-devbrillo-m7-devbrillo-m10-releasebrillo-m10-dev
Change-Id: Ic39c72590cb0561132faefbca121c3782372b9bf
Diffstat (limited to 'test/init1.go')
-rw-r--r-- | test/init1.go | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/test/init1.go b/test/init1.go index f6eda6edf..62dfb72bf 100644 --- a/test/init1.go +++ b/test/init1.go @@ -17,22 +17,30 @@ func init() { go send(c) <-c - const chunk = 1 << 20 - memstats := new(runtime.MemStats) - runtime.ReadMemStats(memstats) - sys := memstats.Sys - b := make([]byte, chunk) + const N = 1000 + const MB = 1 << 20 + b := make([]byte, MB) for i := range b { b[i] = byte(i%10 + '0') } s := string(b) - for i := 0; i < 1000; i++ { + + memstats := new(runtime.MemStats) + runtime.ReadMemStats(memstats) + sys, numGC := memstats.Sys, memstats.NumGC + + // Generate 1,000 MB of garbage, only retaining 1 MB total. + for i := 0; i < N; i++ { x = []byte(s) } + + // Verify that the garbage collector ran by seeing if we + // allocated fewer than N*MB bytes from the system. runtime.ReadMemStats(memstats) - sys1 := memstats.Sys - if sys1-sys > chunk*50 { - println("allocated 1000 chunks of", chunk, "and used ", sys1-sys, "memory") + sys1, numGC1 := memstats.Sys, memstats.NumGC + if sys1-sys >= N*MB || numGC1 == numGC { + println("allocated 1000 chunks of", MB, "and used ", sys1-sys, "memory") + println("numGC went", numGC, "to", numGC) panic("init1") } } |