Files

34 lines
607 B
Go

package main
import (
"fmt"
"runtime"
"slices"
"unsafe"
)
func printAllocs() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
fmt.Printf("%d MB\n", m.Alloc/1024/1024)
}
func main() {
data := make([]int, 10, 100<<20)
fmt.Println("data:", unsafe.SliceData(data), len(data), cap(data))
printAllocs()
temp1 := data[:10]
fmt.Println("temp1:", unsafe.SliceData(temp1), len(temp1), cap(temp1))
temp2 := slices.Clip(data) // data[:10:10]
fmt.Println("temp2:", unsafe.SliceData(temp2), len(temp2), cap(temp2))
runtime.GC()
printAllocs()
runtime.KeepAlive(temp1)
runtime.KeepAlive(temp2)
}