aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/hipe/hipe_x86_stack.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2015-03-25 11:57:44 +0100
committerBjörn Gustavsson <[email protected]>2015-04-13 12:37:55 +0200
commit5f1e301dfec48fccbf865a8b54af5908bebb77c4 (patch)
tree2daaf298e0f80bed9de14bce6cf9bcce4dc8e2b3 /erts/emulator/hipe/hipe_x86_stack.c
parent5b8872c37f63b35e13464109e986ef3727588040 (diff)
downloadotp-5f1e301dfec48fccbf865a8b54af5908bebb77c4.tar.gz
otp-5f1e301dfec48fccbf865a8b54af5908bebb77c4.tar.bz2
otp-5f1e301dfec48fccbf865a8b54af5908bebb77c4.zip
Teach the loader to pre-compute the hash value for single-key lookups
Let the loader pre-compute the hash value when a single, literal key is matched as in: #{<<"some_key">>:=V} = Map In my measurements, this optimization resulted in a 30 percent speedup for short binary keys. Unfortunately, this optimizization makes no difference for small maps with less than 32 keys, since the hash value is not used. Still, there are the following use cases: * A map used instead of a record with more than 32 entries. I have seen some applications with huge records. * Lookup in JSON dictionaries represented as maps. The hash value will only be used when the map is a hash map (currently, that means at least 32 entries).
Diffstat (limited to 'erts/emulator/hipe/hipe_x86_stack.c')
0 files changed, 0 insertions, 0 deletions