home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 April / PCWorld_2001-04_cd.bin / Software / TemaCD / webclean / !!!python!!! / PyXML-0.6.3.win32-py2.0.exe / xmldoc / README.sgmlop < prev    next >
Text File  |  2000-09-26  |  3KB  |  99 lines

  1.  
  2. =============================
  3. The sgmlop accelerator module
  4. =============================
  5.  
  6. sgmlop contains an optimized SGML/XML parser, designed as an add-on to
  7. the sgmllib/htmllib and xmllib modules shipped with Python 1.5.
  8.  
  9. using empty callbacks, this driver is about 6 times faster than the
  10. original xmllib implementation.  when using sgmlop directly, it can be
  11. more than 50 times faster.  for more information on benchmarking
  12. sgmlop, see below.
  13.  
  14. Enjoy /F
  15.  
  16. fredrik@pythonware.com
  17. http://www.pythonware.com
  18.  
  19. --------------------------------------------------------------------
  20. Copyright (c) 1998 by Secret Labs AB.
  21.  
  22. Permission to use, copy, modify, and distribute this software and
  23. its associated documentation for any purpose and without fee is
  24. hereby granted.  This software is provided as is.
  25. --------------------------------------------------------------------
  26.  
  27.  
  28. release info
  29. ------------
  30.  
  31. This is the third public release.  Changes include:
  32.  
  33. - added a starttag attribute parser written in C.  this gives
  34.   a considerable speedup on files using lots of tag attributes
  35.  
  36. - the callback object can now have an sgmllib/xmllib interface
  37.   (finish/handle) *or* a saxlib interface (see saxhack.py for
  38.   an example).
  39.  
  40.  
  41. contents
  42. --------
  43.  
  44. README        this file
  45.  
  46. sgmllib.py    a drop-in replacement for the sgmllib.py module
  47.         distributed with Python 1.5
  48.  
  49. xmllib.py    a drop-in replacement for the xmllib.py module
  50.         distributed with Python 1.5
  51.  
  52. saxhack.py    illustrates how to implement the SAX DocumentHandler
  53.         interface directly with native sgmlop.  this is over
  54.         30 times faster than a corresponding parser based on
  55.         the original xmllib.
  56.  
  57. sgmlop.dll    a precompiled version for python 1.5 on win32
  58.  
  59. sgmlop.c    accelerator source code
  60.  
  61. sgmlop.mak    makefile for MSVC++ 5.0 generated by opal/pymake.
  62.         make sure to change the directory names before you
  63.         use it on your own machine.
  64.  
  65. bench*.py    various test files and benchmarks
  66. test*.py
  67.  
  68.  
  69. benchmarks
  70. ----------
  71.  
  72. benchmarking the sgmlop parser is non-trivial; if you don't install
  73. any callbacks, it's some 300 times faster than the original xmllib (it
  74. can parse more than 10 MB/s on a fast Pentium II).  this means that in
  75. a typical test, far more time is lost on the Python method call
  76. overhead than on the parsing proper.
  77.  
  78. my earlier benchmarks used a 'collecting' parser, which stored all
  79. tags and elements in a list.  with that setup, sgmlop is roughly 5
  80. times faster than the original implementation.
  81.  
  82. the benchxml.py script provided with this release uses empty parsers
  83. instead (that is, all callbacks exists, but they include only a 'pass'
  84. operation), in order to measure the parser and Python call overhead
  85. only.
  86.  
  87. here's a typical test run (with the time for the original xmllib
  88. implementation set to 1):
  89.  
  90. parser         time
  91. --------------------------------------------------------------------
  92. slow xmllib  1.0
  93. fast xmllib  0.156 (6.4x)
  94. sgmlop dummy 0.019 (53.5x)
  95. sgmlop null  0.003 (297.8x)
  96.  
  97. the null time is obtained by running the parser without any callbacks
  98. installed.
  99.