On Nov 7, 2007 1:49 PM, mortee <[EMAIL PROTECTED]> wrote: > I just set out to do some simple measurements to see how fast libxml may > be compared to hpricot. > > I made a little script with a ~4 megs XML document appended after __END__. > > $ uname -s > CYGWIN_NT-5.1 > $ gem list libxml > > *** LOCAL GEMS *** > > libxml-ruby (0.5.2.0) > LibXML2 bindings for Ruby > $ head -18 ./xml-bm2.rb > #!/usr/bin/env ruby > require 'benchmark' > require 'hpricot' > require 'xml/libxml' > > xml = DATA.read > > Benchmark.bmbm { |b| > b.report('hpricot') do > Hpricot::XML(xml).search('data').each{} > end > b.report('libxml') do > XML::Parser.string(xml).parse.find('//data').each{} > end > } > > __END__ > <?xml version="1.0" encoding="UTF-8" standalone="no"?> > $ ./xml-bm2.rb > Rehearsal ------------------------------------------- > hpricot 14.407000 0.157000 14.564000 ( 15.686000) > libxml 0.796000 0.093000 0.889000 ( 42.462000) > --------------------------------- total: 15.453000sec > > user system total real > hpricot 13.797000 0.000000 13.797000 ( 15.578000) > libxml 0.859000 0.016000 0.875000 ( 41.091000) > > As you can see, hpricot has finished with parsing the XML previously > loaded into memory about three times faster in real time than libxml. > Also the other figures for libxml are pretty interesting. To this comes > the fact that while hpricot processes the document, my CPU maxes out all > the way through - however during the libxml phase, it's virtually idle. > > Does anyone have any clue as to why this may happen, and how to have > libxml live up to its potential?...
I've seen this kind of things before too. I was getting faster speeds out of Rexml! libxml is fast, but something in the Ruby binding is putting the kabosh on it. We really need a performance analysis run. How hard is it to profile your code? Have you tried profile.rb? I would like to get a release of Dan's great work out soon. But maybe we should address this issue first. T. _______________________________________________ libxml-devel mailing list libxml-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/libxml-devel