Leo, Wow! That's quite a bit of JIT code that you've just rustled up! I'll have to wait until this evening before I can properly try it, but those results look real good! I guess comparison with the XS version is the 'fairest' (similar executable size and startup time), in which case we're about half or third the speed of optimised C (with a big pinch of salt).
Thanks, Nick [EMAIL PROTECTED] wrote: > 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 > >