pierre-vigier / Perl6-Data-MessagePack

Message pack implementation for perl6 / msgpack.org[Perl 6]
Artistic License 2.0
5 stars 8 forks source link

speed up unpack-string and unpack-bin #10

Closed timo closed 6 years ago

timo commented 6 years ago

strings unpack more than 4x faster now.

pierre-vigier commented 6 years ago

Is there any performance improvement to remove the "return" statement? i always prefer explicit code, in case someone else look at the code

timo commented 6 years ago

Here's some timings for you based on a 4.9 megabytes big messagepack file:

# returns removed
10.49user 0.06system 0:10.44elapsed 100%CPU (0avgtext+0avgdata 169700maxresident)k
10.63user 0.05system 0:10.49elapsed 101%CPU (0avgtext+0avgdata 169528maxresident)k
10.55user 0.10system 0:10.67elapsed 99%CPU (0avgtext+0avgdata 169552maxresident)k

# returns kept
11.77user 0.16system 0:12.03elapsed 99%CPU (0avgtext+0avgdata 169180maxresident)k
12.04user 0.05system 0:11.93elapsed 101%CPU (0avgtext+0avgdata 169676maxresident)k
11.62user 0.13system 0:11.70elapsed 100%CPU (0avgtext+0avgdata 169468maxresident)k

however, my system is not completely idle in the background, so the numbers may be skewed

timo commented 6 years ago

In roughly the same system state, i.e. working on stuff in the background, i get these timings before both of the commits:

57.23user 0.09system 0:57.59elapsed 99%CPU (0avgtext+0avgdata 170068maxresident)k
55.07user 0.41system 0:56.31elapsed 98%CPU (0avgtext+0avgdata 170152maxresident)k
57.48user 0.27system 1:00.06elapsed 96%CPU (0avgtext+0avgdata 170176maxresident)k