Here are the performance results from different devices:
- Android phone, ~5M ops/sec.
- Macbook Air, Chrome, ~30M ops/sec.
- Macbook Pro, Chrome Canary, ~80M ops/sec.
- Lenovo netbook, IE6, ~100K ops/sec.
How did we accomplish 100,000 ops/sec in IE6?
This test ran on the cheapest Windows laptop available on the market. A $150 2GB Atom CPU which was loaded up with IETester to do some performance benchmarking. These numbers represent a breakthrough in performance not possible with other databases. A technical deep dive is highlighted on the Read the Source podcast:
For those who want the short summary:
- Use PTSD (Performance Testing Speed Development, like TDD) to micro-optimize your code without getting lost in micro-optimizations. This tech talk is a must watch.
- Reduce function calls and prioritize hot code paths as the first if statements.
- Do work only once, and then use centralized in-memory caching and cache updating to skip ever doing any work again.
Resulting caveats:
- These performance benchmarks rarely have cache misses, but replicates other database benchmarks which do the same. Measuring disk I/O is not very interesting.
- Take all performance testing benchmarks with a huge grain of salt. That is why GUN has built PANIC, a distributed testing framework.