summaryrefslogtreecommitdiff
path: root/junkcode/dongre.avinash@gmail.com-clibutils/win/tclibutils_Debug/t_clibutils.obj
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2011-03-25 16:09:05 +1030
committerRusty Russell <rusty@rustcorp.com.au>2011-03-25 16:09:05 +1030
commit1444b09cd357c145b6e3fdb1bce3b6ace6862f56 (patch)
tree2624fa3c044715a79d3c34910188bdec3fb18e07 /junkcode/dongre.avinash@gmail.com-clibutils/win/tclibutils_Debug/t_clibutils.obj
parent4bde5a87c0df66d2000d972a2a0a9992a9d9396d (diff)
tdb2: fix traversal bug in free list lock_and_alloc()
We keep looking even if the current best is exactly right. This is really bad, because our smaller free lists hold exactly one size: with this bug we iterate to the end of the list before hitting the end and deciding we can use it after all. Before: $ ./speed --transaction --no-sync 2000000 Adding 2000000 records: 1179 ns (93594224 bytes) Finding 2000000 records: 694 ns (93594224 bytes) Missing 2000000 records: 429 ns (93594224 bytes) Traversing 2000000 records: 519 ns (93594224 bytes) Deleting 2000000 records: 896 ns (93594224 bytes) Re-adding 2000000 records: 1129 ns (93594224 bytes) Appending 2000000 records: 1713 ns (182801232 bytes) Churning 2000000 records: 32612 ns (182801232 bytes) After: $ ./speed --transaction --no-sync 2000000 Adding 2000000 records: 1195 ns (93594224 bytes) Finding 2000000 records: 719 ns (93594224 bytes) Missing 2000000 records: 429 ns (93594224 bytes) Traversing 2000000 records: 523 ns (93594224 bytes) Deleting 2000000 records: 901 ns (93594224 bytes) Re-adding 2000000 records: 1032 ns (93594224 bytes) Appending 2000000 records: 1711 ns (182801232 bytes) Churning 2000000 records: 3233 ns (182801232 bytes)
Diffstat (limited to 'junkcode/dongre.avinash@gmail.com-clibutils/win/tclibutils_Debug/t_clibutils.obj')
0 files changed, 0 insertions, 0 deletions