13391 shaares
335 private links
335 private links
The bandwith (with linear data) is more efficient than RAM.
Part 1 showed that computers are getting wider, not faster, and that PCIe bandwidth is outpacing DRAM bandwidth.
Part 2 showed that streaming from disk can beat streaming from the page cache.
Part 2.5 showed that with the right hardware and software, streaming from disk can beat a buffer in DRAM. So far I've shown how a sequential read from NVMe is fast, which is a cool trick but not controversial enough.
Big O notation assumes every step costs the same. They don't. The notation defines the shape of the performance curve but not it's slope or magnitude.
Big O notation can't see some limits such as AVL search drops from 4.0M/S to 2.3M/s between 512K and 1M nodes
Better than AVL tree:
- an adaptive Radix tree: walks the bits of the key instead of comparing
- A B+tree: (fat nodes with many keys each, so far fewer levels
- NextArray: extensible array using a specific amount of RAM for pagination such as 1 KiB in RAM