After our latest round of optimization, the 100ms barrier teased us,
just milliseconds away.
Profiling the resulting program reveals that
60% of the CPU is spent in operator new.
Is there anything we can do about that?
Indeed, we can.
Notice that the memory allocation pattern for the strings in our
dictionary is quite special:
Once a string...