Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.
Back from a fabulous Christmas holidays and I'm busy profiling some tests to find out why they're slow. Here are our top ten offenders:
time elapsed (wall): 1338.6896
time running program: 1063.1014 (79.41%)
time profiling (est.): 275.5731 (20.59%)
number of calls: 62524605
number of exceptions: 620
%Time Sec. #calls sec/call F name
4.89 52.0217 49746 0.001046 ? DBI::st::execute
4.78 50.8507 2166072 0.000023 Class::Accessor::Grouped::get_inherited
2.86 30.4032 6066183 0.000005 Class::Accessor::Grouped::get_simple
2.58 27.4112 290321 0.000094 DBIx::Class::ResultSet::_collapse_result
2.00 21.2111 1137080 0.000019 <anon>:...5//XML/XPath/XMLParser.pm:63
1.73 18.3833 975751 0.000019 <anon>:.../perl5//Test/XML/XPath.pm:45
1.58 16.8466 761923 0.000022 DBIx::Class::ResultSourceHandle::resolve
1.57 16.6434 1049788 0.000016 <anon>:...DBIx/Class/ResultSet.pm:2106
1.42 15.0791 328238 0.000046 XML::XPath::Node::ElementImpl::DESTROY
1.40 14.9275 565934 0.000026 XML::XPath::XMLParser::parse_char
Those may be tough to work around, but we've also found this:
grep UNIVERSAL::isa prof.out
0.99 10.5302 620280 0.000017 UNIVERSAL::isa::object_or_class
0.94 10.0405 631328 0.000016 UNIVERSAL::isa
0.63 6.6978 622348 0.000011 UNIVERSAL::isa::invocant_type
0.00 0.0133 2068 0.000006 UNIVERSAL::isa::reference
0.00 0.0000 1 0.000007 UNIVERSAL::isa::import
Killing off UNIVERSAL::isa is a quick win for a bit of gain. We've enough tests that we're confident this won't hurt us.
What perl? (Score:1)
That prompted me to work around the issue and go one step further, squeeze as much out of CAg as I can with my limited knowledge.
Not released yet, but here's the numbers from last night:
CURRENT VERSION:
Benchmark: running get_foo, get_inherited_class, get_inherited_object, get_simple, set_foo, set_inherited_class, set_inherited_object, set_simple for at least 3 CPU seconds...