diff options
author | Björn-Egil Dahlberg <[email protected]> | 2016-04-09 00:54:40 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2016-04-11 13:41:22 +0200 |
commit | c56c6d36c3060e62925f036ad020da1753e48829 (patch) | |
tree | 328063629d28cc113d026dbccfa9142be869f1f8 /erts/emulator/beam/io.c | |
parent | 9e3d98d67a9fbc62aa54b3035b953eb94486cdf7 (diff) | |
download | otp-c56c6d36c3060e62925f036ad020da1753e48829.tar.gz otp-c56c6d36c3060e62925f036ad020da1753e48829.tar.bz2 otp-c56c6d36c3060e62925f036ad020da1753e48829.zip |
erts: Optimize '++' operator
This also optimizes the BIF lists:append/2
Use one pass to check for properness and copying LHS list.
If LHS turns out not being a proper list, bail and reset htop.
If we run out of heap, allocate a heap-fragment and calculate
the remaining length as normal, thus checking for properness,
and then continue copying.
Measurements shows this being ~50% faster.
Diffstat (limited to 'erts/emulator/beam/io.c')
0 files changed, 0 insertions, 0 deletions