Nick Glencross wrote:

Having looked into it a little further, it actually looks like the 'ord' operation is a significant part of the (JIT) run, perhaps as much as 50%, which seems disproportionately high... (you can just comment out the ord to see this)

Yeah, string_ord() isn't really fast, but ...

I wrote:
| There are always some optimizations still.

... so I just did fully inline JIT the fast path with fixed8 encoding.

And compiling an --optimize'd Parrot helps too a lot. Here are fresh numbers:

md5sum of perl-5.8.0.tar.gz  size=11023084

parrot -j      2.63 user   2.68 real  # unoptimized build
parrot -j rot  2.57 user   2.75 real  # unopt. buil rot opcode

parrot -j ord  1.10 user   1.26 real  # opt. build rev 8072

md5sum         0.11 user,  0.20 real  # C
Digest::Perl::MD5         29.00 real  # perl
Digest::MD5                0.50 real  # XS
Tools/scripts/md5sum.py    0.44 real  # C

Nick

leo



Reply via email to