From b4d00c394a1feb8b2c6404e01be891e4a997ef35 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 30 Jan 2015 14:15:49 -0500 Subject: Expand assertion statements. This commit expands calls to _assert() that use variadic arguments. These calls require conversion to interface{} so there was a large number of calls to Go's internal convT2E() function. In some profiling this was taking over 20% of total runtime. I don't remember seeing this before Go 1.4 so perhaps something has changed. --- db.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'db.go') diff --git a/db.go b/db.go index 64de16e..ae135ef 100644 --- a/db.go +++ b/db.go @@ -664,9 +664,11 @@ func (m *meta) copy(dest *meta) { // write writes the meta onto a page. func (m *meta) write(p *page) { - - _assert(m.root.root < m.pgid, "root bucket pgid (%d) above high water mark (%d)", m.root.root, m.pgid) - _assert(m.freelist < m.pgid, "freelist pgid (%d) above high water mark (%d)", m.freelist, m.pgid) + if m.root.root >= m.pgid { + panic(fmt.Sprintf("root bucket pgid (%d) above high water mark (%d)", m.root.root, m.pgid)) + } else if m.freelist >= m.pgid { + panic(fmt.Sprintf("freelist pgid (%d) above high water mark (%d)", m.freelist, m.pgid)) + } // Page id is either going to be 0 or 1 which we can determine by the transaction ID. p.id = pgid(m.txid % 2) -- cgit v1.2.3