• Show log

    Commit

  • Hash : 3e031b7d
    Author : Vojtech Fried
    Date : 2012-08-24T16:52:44

    Switching XPath node sorting to Timsort
    
    I use libxml xpath engine on quite large (and mostly "flat") xml files.
    It seems that Shellsort, that is used in xmlXPathNodeSetSort is a
    performance bottleneck for my case. I have read some posts about sorting
    in libxml in the libxml archive, but I agree that qsort was not the way
    to go. I experimented with Timsort instead and my results were good for
    me. For about 10000 nodes, my test was about 5x faster with Timsort,
    for 1000 nodes about 10% faster, for small data files, the difference
    was not measurable.
    * timsort.h: the algorithm, kept in a separate header
    * xpath.c: plug in the new algorithm in xmlXPathNodeSetSort
    * Makefile.am: add the header to the EXTRA_DIST
    * doc/apibuild.py: avoid indexing the new header
    

  • README

  •                   XML toolkit from the GNOME project
    
    Full documentation is available on-line at
        http://xmlsoft.org/
    
    This code is released under the MIT Licence see the Copyright file.
    
    To build on an Unixised setup:
       ./configure ; make ; make install
    To build on Windows:
       see instructions on win32/Readme.txt
    
    To assert build quality:
       on an Unixised setup:
          run make tests
       otherwise:
           There is 3 standalone tools runtest.c runsuite.c testapi.c, which
           should compile as part of the build or as any application would.
           Launch them from this directory to get results, runtest checks 
           the proper functionning of libxml2 main APIs while testapi does
           a full coverage check. Report failures to the list.
    
    To report bugs, follow the instructions at: 
      http://xmlsoft.org/bugs.html
    
    A mailing-list xml@gnome.org is available, to subscribe:
        http://mail.gnome.org/mailman/listinfo/xml
    
    The list archive is at:
        http://mail.gnome.org/archives/xml/
    
    All technical answers asked privately will be automatically answered on
    the list and archived for public access unless privacy is explicitly
    required and justified.
    
    Daniel Veillard
    
    $Id$