in reply to Re: how to get XML::LibXML perfect xpath query ?
in thread how to get XML::LibXML perfect xpath query ?

In environments of high volume or frequent parsing of huge XML documents I would use Expat instead it is really fast.

In my experience, XML::LibXML is 12x faster than XML::Parser (Expat) at creating the same Perl-land data structure.

  • Comment on Re^2: how to get XML::LibXML perfect xpath query ?

Replies are listed 'Best First'.
Re^3: how to get XML::LibXML perfect xpath query ?
by bluescreen (Friar) on Jun 13, 2010 at 03:45 UTC

    My DOM parser tests compared XML::Simple vs. XML::LibXML in two platforms Solaris 10 and Linux 2.6, all my tests in Solaris ( different documents with different sizes ) showed XML::LibXML was slower than XML::Simple ( It was much slower accessing nodes), as for Linux it was the opposite and XML::LibXML was 8-10x faster than XML::Simple.

    On the other hand comparing a SAX parser using XML::Parser vs. a DOM parser using XML::LibXML or XML::Simple, expat won in both Solaris and Linux.

    Honestly, I haven't tried XML::LibXML::SAX and maybe it is way faster than XML::Parser.

    This link its a bit outdated but It has some benchmarks. Probably things changed notably since then.

      It was much slower accessing nodes

      You seem to have missed "at creating the same Perl-land data structure." Visiting every node was included in the benchmark.

      A task using SOAP::Lite that took two minute was sped up to 15 seconds when I replaced Expat with XML::LibXML as its parser. I kept the change mininal: XML::LibXML was used to create the same data structure that Expat was used to create.

      Honestly, I haven't tried XML::LibXML::SAX and maybe it is way faster than XML::Parser.

      As I mentioned, XML::Parser is by far the fastest existing backend for XML::Simple. I'm pretty sure I've posted benchmarks on PerlMonks.