Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

chromatic
  (email not shown publicly)
http://wgz.org/chromatic/

Blog Information [technorati.com] Profile for chr0matic [technorati.com]

Journal of chromatic (983)

Saturday May 17, 2008
12:33 AM

Double-Speed

[ #36449 ]

Today's Parrot speedups add up to almost 50%. That's right -- a little rethinking nearly doubled the benchmark speed.

Patrick said he'd work on this a little bit, but I ran a couple of quick tests. The NQP grammar included with Parrot 0.5.2 builds in 5.575 wallclock seconds with today's new Parrot. It built in 12.956 seconds with Parrot 0.5.2. Today's version of the grammar failed to build with Parrot 0.5.2 after 20.636 seconds. It builds with today's Parrot in 16.322 seconds.

Those numbers aren't scientific (despite all those decimal points of precision), but they're roughly correct. I trust Callgrind's accuracy more for comparison. Parrot 0.5.2 spent 21,285,518,488 cycles building its grammar. New Parrot spent 9,189,968,377 cycles building the grammar for 0.5.2.

The grammar as of r27568 is 2332 lines long; it was 806 lines long in Parrot 0.5.2. It costs 24,377,028,231 cycles to build in today's Parrot. Doubling the speed in six months is good. Doubling the speed while adding so many new features is even better. Also keep in mind that most of the optimizations were in the core of Parrot, not in NQP or PIR. We don't yet have a good way to profile PIR, so we've performed very few optimizations at that level. There are likely several decent improvements lying in wait.

If there's sufficient interest, I'll explain today's two optimizations in a future post.

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.