Last night, Ingy döt Net changed his Chinese name to 應吉大聶, thus gaining the unique status among Pugs committers to have two non-ASCII names. And you thought I was weird...
On a more serious note, miyagawa and I continued hacking on JSON::Syck,
running into weird Perl 5 XS issues left and right. But our persistence
prevailed: with a simple C-based pre-/post-processor to handle JSON's lack
of whitespace after comma and colons, JSON::Syck now supports full JSON
syntax.
Here is some benchmark results with pure-perl5 JSON.pm. As you can see, we are 3-5x faster:
[Dump] JSON.pm: 44 wallclock secs (38.20 usr + 0.00 sys = 38.20 CPU) @ 2618.12/s (n=100000)
[Dump] JSON::Syck: 14 wallclock secs (13.12 usr + 0.00 sys = 13.12 CPU) @ 7619.05/s (n=100000)
[Load] JSON.pm: 66 wallclock secs (46.11 usr + 0.01 sys = 46.12 CPU) @ 2168.39/s (n=100000)
[Load] JSON::Syck: 12 wallclock secs ( 9.63 usr + 0.03 sys = 9.66 CPU) @ 10347.62/s (n=100000)
Ingy finally released YAML.pm 0.50, the first major release in almost four years to the pure-perl YAML implementation. Aside from a huge set of functionality improvements, it also comes with a comprehensive test suite to eliminate corner cases that the earlier YAML.pm versions were notorious of.
However, the rigorous refactoring did run against Perl 5's method call overhead (which I'd like to eliminate with Sixxy.pm), so the benchmark numbers differed by 20-40x this time:
[Dump] YAML.pm: 308 wallclock secs (285.05 usr + 0.06 sys = 285.12 CPU) @ 350.73/s (n=100000)
[Dump] YAML::Syck: 13 wallclock secs (13.29 usr + 0.00 sys = 13.29 CPU) @ 7524.99/s (n=100000)
[Load] YAML.pm: 474 wallclock secs (422.63 usr + 0.05 sys = 422.69 CPU) @ 236.58/s (n=100000)
[Load] YAML::Syck: 12 wallclock secs (10.95 usr + 0.04 sys = 10.98 CPU) @ 9103.84/s (n=100000)
Gaal and clkao worked on Pugs release engineering, by repairing "make smoke" and ensuring that the JSPerl5 backend did pass its usual 80%+ share of subtests. I've also briefed Ingy about Pugs's OpTable/Rules implementation, though I wonder if he'll find sufficient cycle to read through Programming in Haskell...
Unfortunately, I had to leave the hackathon early tonight, as I have three consecutive $job days of Jifty hacking from tomorrow on. As of this writing, the hackathoners are still going strong in Chupei... Happy hacking, folks!
應吉大聶.. 應吉 is the same pronunciation of ingy, what does 大聶 mean ?
is Jifty as the newly announced jifty:: modules on CPAN ? didn't know it's already being used in the real world.
Posted by: Qiang | 2006.01.11 at 10:41 AM
大聶 is pronounced as "dot net". :-)
Yes, Jifty is the new web toolkit on CPAN; I've been using it for day job for a while now.
Posted by: Audrey T | 2006.01.11 at 07:22 PM