go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/checksums/bench/checksum_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package bench
     5  
     6  import (
     7  	"encoding/base64"
     8  	"encoding/binary"
     9  	"testing"
    10  
    11  	"github.com/segmentio/fasthash/fnv1a"
    12  	"go.mondoo.com/cnquery/checksums"
    13  )
    14  
    15  var result string
    16  
    17  func BenchmarkChecksum_fnv1a(b *testing.B) {
    18  	var res string
    19  	for n := 0; n < b.N; n++ {
    20  		checksum := fnv1a.Init64
    21  		for i := 0; i < 1000; i++ {
    22  			checksum = fnv1a.AddString64(checksum, "hello")
    23  		}
    24  
    25  		b := make([]byte, 8)
    26  		binary.LittleEndian.PutUint64(b, uint64(checksum))
    27  		res = base64.StdEncoding.EncodeToString(b)
    28  	}
    29  	result = res
    30  }
    31  
    32  func BenchmarkChecksum_fast(b *testing.B) {
    33  	var res string
    34  	for n := 0; n < b.N; n++ {
    35  		checksum := checksums.New
    36  		for i := 0; i < 1000; i++ {
    37  			checksum = checksum.Add("hello")
    38  		}
    39  
    40  		res = checksum.String()
    41  	}
    42  	result = res
    43  }