You should use Go 1.7.1 or later. 

On Thursday, 29 September 2016 23:00:25 UTC+10, 刘桂祥 wrote:
>
> package main
>
> import "runtime"
>
> func main() {
>     m := new(runtime.MemStats)
>     runtime.ReadMemStats(m)
>     cap := 1024
>     println("debug0")
>     s := make([]byte, cap)
>     println("debug1")
>     _ = s
>     runtime.ReadMemStats(m)
>     println("memstats:", m.Alloc, m.Mallocs)
> }
>
> I use go1.4.2 and In go source code add mallocgc debug info 
> here is the result:
> debug0
> mallocgc: 1024
> mallocgc: 272
> mallocgc: 32
> debug1
>
> I doubt there is other goroutine call the mallocgc  
>  
> but if I use go test -bench="." makeslice_test.go
> func BenchmarkMakeSlice2(b *testing.B) {
>     b.ReportAllocs()
>     cap := 1024
>     for i := 0; i < b.N; i++ {
>         s := make([]byte, cap, cap)
>         _ = s
>     }
> }
> the output is:
> 14120 ns/op    1024 B/op       1 allocs/op
> I infer the go test know all the mallocgc and also know which is  user's 
> source code to call it  
>
> my guess
>
> 在 2016年9月29日星期四 UTC+8下午5:30:54,Dave Cheney写道:
>
>> Sorry, you'll have to work harder to generate a memory profile. My 
>> github.com/pkg/profile package may help automate some of the work, but 
>> may introduce a few allocations of its own which you will have to filter 
>> out. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to