package arbo
|
|
|
|
import "fmt"
|
|
|
|
// dbgStats is for debug purposes
|
|
type dbgStats struct {
|
|
hash int // TODO use atomics for all ints in dbgStats
|
|
dbGet int
|
|
dbPut int
|
|
}
|
|
|
|
func (t *Tree) dbgInit() {
|
|
t.dbg = newDbgStats()
|
|
}
|
|
|
|
func newDbgStats() *dbgStats {
|
|
return &dbgStats{
|
|
hash: 0,
|
|
dbGet: 0,
|
|
dbPut: 0,
|
|
}
|
|
}
|
|
|
|
func (d *dbgStats) incHash() {
|
|
if d == nil {
|
|
return
|
|
}
|
|
d.hash++
|
|
}
|
|
|
|
//nolint:unused
|
|
func (d *dbgStats) incDbGet() {
|
|
if d == nil {
|
|
return
|
|
}
|
|
d.dbGet++
|
|
}
|
|
|
|
//nolint:unused
|
|
func (d *dbgStats) incDbPut() {
|
|
if d == nil {
|
|
return
|
|
}
|
|
d.dbPut++
|
|
}
|
|
|
|
func (d *dbgStats) add(d2 *dbgStats) {
|
|
if d == nil || d2 == nil {
|
|
return
|
|
}
|
|
d.hash += d2.hash
|
|
d.dbGet += d2.dbGet
|
|
d.dbPut += d2.dbPut
|
|
}
|
|
|
|
func (d *dbgStats) print(prefix string) {
|
|
if d == nil {
|
|
return
|
|
}
|
|
fmt.Printf("%sdbgStats(hash: %s, dbGet: %s, dbPut: %s)\n",
|
|
prefix, formatK(d.hash), formatK(d.dbGet), formatK(d.dbPut))
|
|
}
|
|
|
|
func formatK(v int) string {
|
|
if v/1000 > 0 {
|
|
return fmt.Sprintf("%.3fk", float64(v)/1000) //nolint:gomnd
|
|
}
|
|
return fmt.Sprintf("%d", v)
|
|
}
|