Draft: Replace QString cache IDs with a struct-based version
As it turns out, QString::number() is quite expensive, especially when using it in a code path that is called a lot of times. So instead, use a struct with a custom hash method as cache ID. This is significantly faster since we do not need to do memory allocations or string conversions.
This is a draft primarily because I do not yet have a good replacement for the cache-filling logic on lines 308-326.
Edited by Arjen Hiemstra