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 }