@@ -1388,11 +1388,13 @@ func testSnappyDecode(t *testing.T, src []byte) {
13881388func benchDecode (b * testing.B , src []byte ) {
13891389 b .Run ("default" , func (b * testing.B ) {
13901390 encoded := Encode (nil , src )
1391+ buf := make ([]byte , 0 , len (src ))
13911392 b .SetBytes (int64 (len (src )))
13921393 b .ReportAllocs ()
13931394 b .ResetTimer ()
1395+ var err error
13941396 for i := 0 ; i < b .N ; i ++ {
1395- _ , err : = Decode (src [:0 ], encoded )
1397+ buf , err = Decode (buf [:0 ], encoded )
13961398 if err != nil {
13971399 b .Fatal (err )
13981400 }
@@ -1401,11 +1403,13 @@ func benchDecode(b *testing.B, src []byte) {
14011403 })
14021404 b .Run ("better" , func (b * testing.B ) {
14031405 encoded := EncodeBetter (nil , src )
1406+ buf := make ([]byte , 0 , len (src ))
14041407 b .SetBytes (int64 (len (src )))
14051408 b .ReportAllocs ()
14061409 b .ResetTimer ()
1410+ var err error
14071411 for i := 0 ; i < b .N ; i ++ {
1408- _ , err : = Decode (src [:0 ], encoded )
1412+ buf , err = Decode (buf [:0 ], encoded )
14091413 if err != nil {
14101414 b .Fatal (err )
14111415 }
@@ -1414,11 +1418,13 @@ func benchDecode(b *testing.B, src []byte) {
14141418 })
14151419 b .Run ("best" , func (b * testing.B ) {
14161420 encoded := EncodeBest (nil , src )
1421+ buf := make ([]byte , 0 , len (src ))
14171422 b .SetBytes (int64 (len (src )))
14181423 b .ReportAllocs ()
14191424 b .ResetTimer ()
1425+ var err error
14201426 for i := 0 ; i < b .N ; i ++ {
1421- _ , err : = Decode (src [:0 ], encoded )
1427+ buf , err = Decode (buf [:0 ], encoded )
14221428 if err != nil {
14231429 b .Fatal (err )
14241430 }
@@ -1427,11 +1433,13 @@ func benchDecode(b *testing.B, src []byte) {
14271433 })
14281434 b .Run ("snappy-input" , func (b * testing.B ) {
14291435 encoded := snapref .Encode (nil , src )
1436+ buf := make ([]byte , 0 , len (src ))
14301437 b .SetBytes (int64 (len (src )))
14311438 b .ReportAllocs ()
14321439 b .ResetTimer ()
1440+ var err error
14331441 for i := 0 ; i < b .N ; i ++ {
1434- _ , err : = Decode (src [:0 ], encoded )
1442+ buf , err = Decode (buf [:0 ], encoded )
14351443 if err != nil {
14361444 b .Fatal (err )
14371445 }
@@ -1442,63 +1450,75 @@ func benchDecode(b *testing.B, src []byte) {
14421450
14431451func benchEncode (b * testing.B , src []byte ) {
14441452 // Bandwidth is in amount of uncompressed data.
1445- dst := make ([]byte , snapref .MaxEncodedLen (len (src )))
1446- b .ResetTimer ()
14471453 b .Run ("default" , func (b * testing.B ) {
1454+ dst := make ([]byte , MaxEncodedLen (len (src )))
1455+ b .ResetTimer ()
14481456 b .SetBytes (int64 (len (src )))
14491457 b .ReportAllocs ()
14501458 for i := 0 ; i < b .N ; i ++ {
1451- Encode (dst , src )
1459+ dst = Encode (dst [: 0 ] , src )
14521460 }
1453- b .ReportMetric (100 * float64 (len (Encode ( dst , src ) ))/ float64 (len (src )), "pct" )
1461+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14541462 })
14551463 b .Run ("better" , func (b * testing.B ) {
1464+ dst := make ([]byte , MaxEncodedLen (len (src )))
1465+ b .ResetTimer ()
14561466 b .SetBytes (int64 (len (src )))
14571467 b .ReportAllocs ()
14581468 for i := 0 ; i < b .N ; i ++ {
1459- EncodeBetter (dst , src )
1469+ dst = EncodeBetter (dst [: 0 ] , src )
14601470 }
1461- b .ReportMetric (100 * float64 (len (EncodeBetter ( dst , src ) ))/ float64 (len (src )), "pct" )
1471+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14621472 })
14631473 b .Run ("best" , func (b * testing.B ) {
1474+ dst := make ([]byte , MaxEncodedLen (len (src )))
1475+ b .ResetTimer ()
14641476 b .SetBytes (int64 (len (src )))
14651477 b .ReportAllocs ()
14661478 for i := 0 ; i < b .N ; i ++ {
1467- EncodeBest (dst , src )
1479+ dst = EncodeBest (dst [: 0 ] , src )
14681480 }
1469- b .ReportMetric (100 * float64 (len (EncodeBest ( dst , src ) ))/ float64 (len (src )), "pct" )
1481+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14701482 })
14711483 b .Run ("snappy-default" , func (b * testing.B ) {
1484+ dst := make ([]byte , MaxEncodedLen (len (src )))
14721485 b .SetBytes (int64 (len (src )))
14731486 b .ReportAllocs ()
1487+ b .ResetTimer ()
14741488 for i := 0 ; i < b .N ; i ++ {
1475- EncodeSnappy (dst , src )
1489+ dst = EncodeSnappy (dst [: 0 ] , src )
14761490 }
1477- b .ReportMetric (100 * float64 (len (EncodeSnappy ( dst , src ) ))/ float64 (len (src )), "pct" )
1491+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14781492 })
14791493 b .Run ("snappy-better" , func (b * testing.B ) {
1494+ dst := make ([]byte , MaxEncodedLen (len (src )))
14801495 b .SetBytes (int64 (len (src )))
14811496 b .ReportAllocs ()
1497+ b .ResetTimer ()
14821498 for i := 0 ; i < b .N ; i ++ {
1483- EncodeSnappyBetter (dst , src )
1499+ dst = EncodeSnappyBetter (dst [: 0 ] , src )
14841500 }
1485- b .ReportMetric (100 * float64 (len (EncodeSnappyBetter ( dst , src ) ))/ float64 (len (src )), "pct" )
1501+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14861502 })
14871503 b .Run ("snappy-best" , func (b * testing.B ) {
1504+ dst := make ([]byte , MaxEncodedLen (len (src )))
14881505 b .SetBytes (int64 (len (src )))
14891506 b .ReportAllocs ()
1507+ b .ResetTimer ()
14901508 for i := 0 ; i < b .N ; i ++ {
1491- EncodeSnappyBest (dst , src )
1509+ dst = EncodeSnappyBest (dst [: 0 ] , src )
14921510 }
1493- b .ReportMetric (100 * float64 (len (EncodeSnappyBest ( dst , src ) ))/ float64 (len (src )), "pct" )
1511+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
14941512 })
14951513 b .Run ("snappy-ref-noasm" , func (b * testing.B ) {
1514+ dst := make ([]byte , snapref .MaxEncodedLen (len (src )))
14961515 b .SetBytes (int64 (len (src )))
14971516 b .ReportAllocs ()
1517+ b .ResetTimer ()
14981518 for i := 0 ; i < b .N ; i ++ {
1499- snapref .Encode (dst , src )
1519+ dst = snapref .Encode (dst [: 0 ] , src )
15001520 }
1501- b .ReportMetric (100 * float64 (len (snapref . Encode ( dst , src ) ))/ float64 (len (src )), "pct" )
1521+ b .ReportMetric (100 * float64 (len (dst ))/ float64 (len (src )), "pct" )
15021522 })
15031523}
15041524
0 commit comments