go1.7.1

go run -gcflags '-N -l -m' example.go

在 2017年4月14日星期五 UTC+8下午1:18:26,Ian Lance Taylor写道:
>
> On Thu, Apr 13, 2017 at 8:33 PM, 刘桂祥 <liuguix...@gmail.com <javascript:>> 
> wrote: 
> > // example.go 
> > package main 
> > 
> > 
> > import "runtime" 
> > 
> > 
> > type S struct{} 
> > 
> > 
> > func main() { 
> >  var stats runtime.MemStats 
> > 
> > 
> >  runtime.ReadMemStats(&stats) 
> >  println(stats.Mallocs) 
> >  var x S 
> >  runtime.ReadMemStats(&stats) 
> >  println(stats.Mallocs) 
> >  _ = *ref(x) 
> >  runtime.ReadMemStats(&stats) 
> >  println(stats.Mallocs) 
> > } 
> > 
> > 
> > func ref(z S) *S { 
> >  return &z 
> > } 
> > 
> > go build -gcflags '-N -l' example.go && ./example 
> > or 
> > go run -gcflags '-N -l' example.go 
> > 
> > results: 
> > ./example.go:21: &z escapes to heap 
> > ./example.go:20: moved to heap: z 
> > ./example.go:10: main &stats does not escape 
> > ./example.go:13: main &stats does not escape 
> > ./example.go:16: main &stats does not escape 
> > 61 
> > 61 
> > 61 
>
> That looks like the output from -gcflags="-m -l".  Are you really sure 
> you typed -N?  What version of Go are you using? 
>
> Ian 
>

-- 
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