tdb2: speed up transaction code by making page size a constant.
Turning getpagesize() into a constant 4096 really helps gcc optimize, and not just on 64 bit. Here are the results of running "tools/speed --transaction --no-sync 2000000": i386 with gcc 4.4.5: Before: $ ./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) After: Adding 2000000 records: 868 ns (93594224 bytes) Finding 2000000 records: 569 ns (93594224 bytes) Missing 2000000 records: 369 ns (93594224 bytes) Traversing 2000000 records: 406 ns (93594224 bytes) Deleting 2000000 records: 674 ns (93594224 bytes) Re-adding 2000000 records: 730 ns (93594224 bytes) Appending 2000000 records: 1144 ns (182801232 bytes) Churning 2000000 records: 2085 ns (182801232 bytes) Here's the effect (average of 10) on x8664 with gcc 4.1.2, with an earlier tree and 1000000: Before: Adding 830.1ns Finding 428.3ns Missing 250.3ns Traversing 387.4ns Deleting 588.8ns Re-adding 737.2ns Appending 1141.4ns Churning 1792ns After: Adding 562.8ns Finding 362.1ns Missing 226.4ns Traversing 276.5ns Deleting 426.7ns Re-adding 489.8ns Appending 736.4ns Churning 1112.7ns
Showing
Please register or sign in to comment