package main
import (
"fmt"
"runtime"
"unsafe"
)
func main() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
println(m.HeapObjects, m.Mallocs)
runtime.GC()
runtime.ReadMemStats(&m)
println(m.HeapObjects, m.Mallocs)
runtime.GC()
runtime.ReadMemStats(&m)
println(m.HeapObjects, m.Mallocs)
p := foo()
runtime.ReadMemStats(&m)
println(m.HeapObjects, m.Mallocs)
runtime.GC()
runtime.ReadMemStats(&m)
println(m.HeapObjects, m.Mallocs)
println(*((*int)(unsafe.Pointer(p))))
foo1()
println(*((*int)(unsafe.Pointer(p))))
}
func foo() uintptr {
i := new(int)
*i = 1000
if false {
fmt.Sprintf("%v", i)
}
return uintptr(unsafe.Pointer(i))
}
func foo1() uintptr {
i := new(int)
*i = 2000
if false {
fmt.Sprintf("%v", i)
}
return uintptr(unsafe.Pointer(i))
}