package handler import ( "testing" ) // go test -bench=. -benchmem // 去除数据头 func BenchmarkHeaderCopy(b *testing.B) { l := 1500 for i := 0; i < b.N; i++ { b.StopTimer() pl := getPayload() // 初始化数据 pl.Data = pl.Data[:l] b.StartTimer() dataLen := l - 8 copy(pl.Data, pl.Data[8:8+dataLen]) // 更新切片长度 pl.Data = pl.Data[:dataLen] b.StopTimer() putPayload(pl) } } func BenchmarkHeaderAppend(b *testing.B) { l := 1500 for i := 0; i < b.N; i++ { b.StopTimer() pl := getPayload() // 初始化数据 pl.Data = pl.Data[:l] b.StartTimer() dataLen := l - 8 pl.Data = append(pl.Data[:0], pl.Data[:8+dataLen]...) b.StopTimer() putPayload(pl) } }