github.com/qri-io/qri@v0.10.1-0.20220104210721-c771715036cb/logbook/oplog/log_bench_test.go (about)

     1  package oplog
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/dustin/go-humanize"
     7  )
     8  
     9  func BenchmarkSave10kOpsOneAuthor(b *testing.B) {
    10  	tr, cleanup := newTestRunner(b)
    11  	defer cleanup()
    12  
    13  	init := Op{
    14  		Type:  OpTypeInit,
    15  		Model: 0xFFFF,
    16  	}
    17  
    18  	l := tr.RandomLog(init, 10000)
    19  	book := tr.Journal
    20  	if err := book.MergeLog(tr.Ctx, l); err != nil {
    21  		b.Fatal(err)
    22  	}
    23  
    24  	data, err := book.FlatbufferCipher(tr.PrivKey)
    25  	if err != nil {
    26  		b.Fatal(err)
    27  	}
    28  
    29  	b.Logf("one simulated log with 10k ops weighs %s as encrypted data", humanize.Bytes(uint64(len(data))))
    30  	b.ResetTimer()
    31  	for n := 0; n < b.N; n++ {
    32  		if _, err := book.FlatbufferCipher(tr.PrivKey); err != nil {
    33  			b.Fatal(err)
    34  		}
    35  	}
    36  }