Compressed representation isn&#x27;t a trade-off but a win-win very often. When you do in-memory data structures like graphs or automata, you can perform searches times faster if you go for packed representations. What first comes in mind are language-optimised collations <a href="http:&#x2F;&#x2F;ow.ly&#x2F;RVxwa" rel="nofollow">http:&#x2F;&#x2F;ow.ly&#x2F;RVxwa</a>, lossless codes <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Entropy_encoding" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Entropy_encoding</a>, <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Delta_encoding" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Delta_encoding</a>, lightweight LZ <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lempel%E2%80%93Ziv%E2%80%93Welch" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Lempel%E2%80%93Ziv%E2%80%93Wel...</a>. One still has to decompress data chunks (pages, vertices and alike) to act locally while traversing, though cache lines utilisation is improved by more data loaded to process at once, resulting in better speeds. And you can go even faster if you can traverse compressed representations directly without unpacking, which is sometimes possible. General receipt: always shrink data to go faster, and always verify result in real scenarios.