util/disk_cache: fix stored_keys index
authorGrazvydas Ignotas <notasas@gmail.com>
Sat, 18 Mar 2017 22:46:39 +0000 (00:46 +0200)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sun, 19 Mar 2017 21:14:31 +0000 (08:14 +1100)
commitbd93cea69124b91ec278069f2095b4cbfb44cc2f
treed92405ef754530099a0efb54e03e7aed20254951
parent663e7c25f5ea6a3933de804d47503e3569debc01
util/disk_cache: fix stored_keys index

It seems there is a bug because:
- 20 bytes are compared, but only 1 byte stored_keys step is used
- entries can overlap each other by 19 bytes
- index_mmap is ~1.3M in size, but only first 64K is used

With this fix for Deus Ex:
- startup time (from launch to Feral logo): ~38s -> ~16s
- disk_cache_has_key() hit rate: ~50% -> ~96%

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/util/disk_cache.c