Memory hierarchy spans CPU caches, RAM, hard disks, local networks, and wide area networks. Understanding these levels helps explain why data representation and processing choices can change performance. section 6.0
Cache-aware processing can make compressed data useful beyond saving storage space: some compressed array representations can be accessed about as quickly as uncompressed ones. Hardware affects the results, so performance comparisons may differ across machines. section 6.0 section 6.2.4
Bit-shuffling array data
For sequential values such as 3, 4, 5, and 6, rearranging bits can expose regular patterns to a compressor. In one comparison, the shuffled representation used 4,600,034 bytes versus 5,345,500 bytes, while taking 596 ms instead of 524 ms. section 6.2.4
