Apple figured out that precomputing a {Selector, IMP} static hash table significantly improves dispatch time and the memory footprint. This cache is stored inside the DYLD shared cache and includes the pairs for all system libraries.
The procedure is outline in https://opensource.apple.com/source/dyld/dyld-851.27/IMPCaches.md.
There is no DYLD shared cache on Linux or Windows, but why not store it in an ELF section? This can either be one section per object file (i.e. libgnustep-base.so and myApplication has one) or we bake it into the main application which is more of a special case.
What do you think about precomputing the dtable @davidchisnall?
CC: @triplef