10 . "github.com/tendermint/tmlibs/common"
13 func BenchmarkRandomReadsWrites2(b *testing.B) {
16 numItems := int64(1000000)
17 internal := map[int64]int64{}
18 for i := 0; i < int(numItems); i++ {
19 internal[int64(i)] = int64(0)
21 db, err := NewCLevelDB(Fmt("test_%x", RandStr(12)), "")
27 fmt.Println("ok, starting")
30 for i := 0; i < b.N; i++ {
33 idx := (int64(RandInt()) % numItems)
36 idxBytes := int642Bytes(int64(idx))
37 valBytes := int642Bytes(int64(val))
38 //fmt.Printf("Set %X -> %X\n", idxBytes, valBytes)
46 idx := (int64(RandInt()) % numItems)
48 idxBytes := int642Bytes(int64(idx))
49 valBytes := db.Get(idxBytes)
50 //fmt.Printf("Get %X -> %X\n", idxBytes, valBytes)
52 if !bytes.Equal(valBytes, nil) {
53 b.Errorf("Expected %v for %v, got %X",
58 if len(valBytes) != 8 {
59 b.Errorf("Expected length 8 for %v, got %X",
63 valGot := bytes2Int64(valBytes)
65 b.Errorf("Expected %v for %v, got %v",
77 func int642Bytes(i int64) []byte {
78 buf := make([]byte, 8)
79 binary.BigEndian.PutUint64(buf, uint64(i))
83 func bytes2Int64(buf []byte) int64 {
84 return int64(binary.BigEndian.Uint64(buf))