The latest SQLite 3.8.7 alpha version (available on the download page http://www.sqlite.org/download.html) is 50% faster than the 3.7.17 release from 16 months ago. That is to say, it does 50% more work using the same number of CPU cycles.
This performance gain is over and above the query planner improvements that have also been made. We are constantly looking for new ways to run queries and adding those ways into the query planner. For example, in the previous release, we added a new way to evaluate IN operators with non-constant right-hand-sides that was reported on this mailing list to make some queries run 5 times faster. The 50% faster number above is not about better query plans. This is 50% faster at the low-level grunt work of moving bits on and off disk and search b-trees. We have achieved this by incorporating hundreds of micro-optimizations. Each micro-optimization might improve the performance by as little as 0.05%. If we get one that improves performance by 0.25%, that is considered a huge win. Each of these optimizations is unmeasurable on a real-world system (we have to use cachegrind to get repeatable run-times) but if you do enough of them, they add up. A full 10% of the performance gain has come since the previous release. There have been a lot of changes. All our tests pass, and we still have 100% branch test coverage, so we are confident that we didn't break too much. But your testing is an important part of our quality process. Please download a source archive or a DLL and give the latest alpha a whirl, and let us know if you encounter any problems. P.S.: Measurements were done using the "speedtest1 --size 5" workload on Ubuntu 10.13 and gcc 4.8.1 with -Os. YMMV. Version 3.7.17 requires 1432835574 CPU cycles and the 3.8.7 alpha requires just 953861485 CPU cycles, as measured by cachegrind. -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list email@example.com http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users