1
0
mirror of https://github.com/fumiama/go-base16384.git synced 2026-06-05 00:32:52 +08:00

add bench mark

This commit is contained in:
源文雨
2022-04-22 11:12:37 +08:00
parent 6885586cff
commit ce47b19c85

View File

@@ -90,3 +90,71 @@ func TestBufferedDecoder(t *testing.T) {
t.Fail()
}
}
func benchEncrypt(b *testing.B, data []byte) {
_, err := rand.Read(data)
if err != nil {
panic(err)
}
buf := make([]byte, EncodeLen(len(data)))
b.SetBytes(int64(len(data)))
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = EncodeTo(data, buf)
}
}
func benchDecrypt(b *testing.B, data []byte) {
_, err := rand.Read(data)
if err != nil {
panic(err)
}
buf := make([]byte, EncodeLen(len(data)))
err = EncodeTo(data, buf)
if err != nil {
panic(err)
}
b.SetBytes(int64(len(buf)))
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = DecodeTo(buf, data)
}
}
func BenchmarkEncodeTo(b *testing.B) {
b.Run("16", func(b *testing.B) {
data := make([]byte, 16)
benchEncrypt(b, data)
})
b.Run("256", func(b *testing.B) {
data := make([]byte, 256)
benchEncrypt(b, data)
})
b.Run("4K", func(b *testing.B) {
data := make([]byte, 1024*4)
benchEncrypt(b, data)
})
b.Run("32K", func(b *testing.B) {
data := make([]byte, 1024*32)
benchEncrypt(b, data)
})
}
func BenchmarkDecodeTo(b *testing.B) {
b.Run("16", func(b *testing.B) {
data := make([]byte, 16)
benchDecrypt(b, data)
})
b.Run("256", func(b *testing.B) {
data := make([]byte, 256)
benchDecrypt(b, data)
})
b.Run("4K", func(b *testing.B) {
data := make([]byte, 4096)
benchDecrypt(b, data)
})
b.Run("32K", func(b *testing.B) {
data := make([]byte, 1024*32)
benchDecrypt(b, data)
})
}