From def455554b5607ec6ccd0af51d0dea5401003e93 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Mon, 30 Jun 2014 08:01:41 -0600 Subject: Add freelist cache. This commit adds a cache to the freelist which combines the available free pages and pending free pages in a single map. This was added to improve performance where freelist.isFree() was consuming 70% of CPU time for large freelists. --- db.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'db.go') diff --git a/db.go b/db.go index 6ef35ea..4d7ec12 100644 --- a/db.go +++ b/db.go @@ -144,7 +144,7 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) { } // Read in the freelist. - db.freelist = &freelist{pending: make(map[txid][]pgid)} + db.freelist = newFreelist() db.freelist.read(db.page(db.meta().freelist)) // Mark the database as opened and return. -- cgit v1.2.3