package handler import ( "sync" "github.com/bjdgyc/anylink/sessdata" ) var plPool = sync.Pool{ New: func() interface{} { pl := sessdata.Payload{ Data: make([]byte, 0, BufferSize), } // fmt.Println("plPool-init", len(pl.Data), cap(pl.Data)) return &pl }, } func getPayload() *sessdata.Payload { pl := plPool.Get().(*sessdata.Payload) return pl } func putPayload(pl *sessdata.Payload) { pl.LType = 0 pl.PType = 0 pl.Data = pl.Data[:0] plPool.Put(pl) } var bytePool = sync.Pool{ New: func() interface{} { b := make([]byte, 0, BufferSize) // fmt.Println("bytePool-init") return b }, } func getByteZero() []byte { b := bytePool.Get().([]byte) return b } func getByteFull() []byte { b := bytePool.Get().([]byte) b = b[:BufferSize] return b } func putByte(b []byte) { b = b[:0] bytePool.Put(b) }