ski@ganiodayo:~/tmp$ rm -f tmon.out ; time perl -d:DProf -e 'use strict; use warnings; use XML::Comma; my $foo = `cat foo.xml`; print XML::Comma->parser."\n"; foreach my $i (0..9999) { my $d = XML::Comma::Doc->new(block => $foo, validate => 0); }'; dprofpp tmon.out XML::Comma::Parsing::SimpleC real 0m17.165s user 0m15.901s sys 0m1.092s Total Elapsed Time = 4.796240 Seconds User+System Time = 4.856240 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 17.8 0.866 5.753 70331 0.0000 0.0001 XML::Comma::Parsing::SimpleC::hand le_element 13.5 0.660 3.269 60000 0.0000 0.0001 XML::Comma::NestedElement::add_ele ment 9.25 0.449 0.806 70331 0.0000 0.0000 XML::Comma::AbstractElement::_init 8.22 0.399 0.397 270088 0.0000 0.0000 XML::Comma::Def::def_by_name 7.39 0.359 0.359 281122 0.0000 0.0000 XML::Comma::Parsing::SimpleC::next _token 7.21 0.350 0.940 60007 0.0000 0.0000 XML::Comma::AbstractElement::new 6.57 0.319 0.319 590485 0.0000 0.0000 XML::Comma::AbstractElement::def 5.77 0.280 0.280 50185 0.0000 0.0000 XML::Comma::Util::trim 4.90 0.238 0.335 40847 0.0000 0.0000 XML::Comma::NestedElement::element s 4.12 0.200 6.885 20000 0.0000 0.0003 XML::Comma::Doc::new 4.12 0.200 0.480 70007 0.0000 0.0000 XML::Comma::AbstractElement::finis h_initial_read 4.10 0.199 0.209 60329 0.0000 0.0000 XML::Comma::NestedElement::_add_el ements 3.09 0.150 6.563 10002 0.0000 0.0007 XML::Comma::Parsing::SimpleC::hand le_document 2.88 0.140 0.810 50007 0.0000 0.0000 XML::Comma::Element::finish_initia l_read 2.84 0.138 0.138 321526 0.0000 0.0000 XML::Comma::AbstractElement::tag