【记录一个问题】golang中使用sync.Pool反而造成了负优化
之前有这样的代码:从http收数据后,进行snappy解码:
dst := make([]byte, 0, len(httpRequestData)*5)
dst, err = snappy.Decode(dst, httpRequestData)
我想,通过sync.Pool,是不是可以优化这里的内存分配?于是我改成这样:
var pool = sync.Pool{
        New: func() interface{} {
                return make([]byte, 1024*32)
        },
}
func xxx(){
	dstTemp := pool.Get().([]byte)
	dst := dstTemp[0:0]
	defer pool.Put(dstTemp)
	dst, err = snappy.Decode(dst, bufRaw)
}
上面的代码造成了负优化:性能下降27.5%
还没想明白为什么。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号