Skip to content
Snippets Groups Projects
  1. Jul 09, 2007
  2. Nov 06, 2006
  3. Jun 17, 2005
  4. Feb 21, 2005
  5. Jan 07, 2005
  6. Oct 28, 2004
  7. Sep 08, 2004
  8. Sep 25, 2003
  9. May 16, 2003
  10. May 15, 2003
  11. Nov 04, 2002
  12. Feb 01, 2002
  13. May 11, 2001
  14. Jan 15, 2001
    • Tinny Ng's avatar
      Performance Patches by David Bertoni. · b80f6879
      Tinny Ng authored
      Details: (see xerces-c-dev mailing Jan 14)
      XMLRecognizer.cpp: the internal encoding string XMLUni::fgXMLChEncodingString
      was going through this function numerous times.  As a result, the top hot-spot
      for the parse was _wcsicmp().  The real problem is that the Microsofts wide string
      functions are unbelievably slow.  For things like encodings, it might be
      better to use a special comparison function that only considers a-z and
      A-Z as characters with case.  This works since the character set for
      encodings is limit to printable ASCII characters.
      
       XMLScanner2.cpp: This also has some case-sensitive vs. insensitive compares.
      They are also much faster.  The other tweak is to only make a copy of an attribute
      string if it needs to be split.  And then, the strategy is to try to use a
      stack-based buffer, rather than a dynamically-allocated one.
      
      SAX2XMLReaderImpl.cpp: Again, more case-sensitive vs. insensitive comparisons.
      
      KVStringPair.cpp & hpp: By storing the size of the allocation, the storage can
      likely be re-used many times, cutting down on dynamic memory allocations.
      
      XMLString.hpp: a more efficient implementation of stringLen().
      
      DTDValidator.cpp: another case of using a stack-based buffer when possible
      
      These patches made a big difference in parse time in some of our test
      files, especially the ones are very attribute-heavy.
      
      
      git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@172497 13f79535-47bb-0310-9956-ffa450edef68
      b80f6879
  15. Mar 02, 2000
  16. Feb 06, 2000
  17. Nov 09, 1999
Loading