FAQDOCSDOWNLOADSGALLERYJA-SIG LogoSourceForge.net Logo
Overview
Getting Started
Using the Content Manager
Authoring Content
Developing Sites
Project Definition Files
Filesystems
Path patterns
Content Types
XML Content
RDF: Extensible Metadata
Dublin Core Metadata
VCard Metadata
XML Includes
XSL Transformations
Filters
Non-XML Content
Editors
Ignored Directories
Permissions
Navigation and Site Maps
Optimizations
Glossary
Bibliography
HyperContent has been aggressively optimized for maximum performance and memory efficiency. Profiling tools were used extensively in development with a number of test sites to analyze and alleviate performance bottlenecks. Tested with the largest sites currently implemented in HyperContent, profiling indicates that the single largest performance bottleneck is processing XSL transformations. The publication report screen, described in an earlier chapter, provides metrics information detailing where the build process is spending its time. The numbers provided there can help you identify whether any particular transformations are taking a lot of time, so that you can focus your own optimization efforts where needed, and have some basis for comparing the performance implications of changes. Here are some tips for optimizing XSL processing in HyperContent:

  • Use xsl keys whenever possible, to reduce the cost of xpath lookups. For example, a simple key to get a nodelist of all XML Includes conforming to a certain pattern:
    < xsl:key name="pattern" match="/cms:wrapper/cms:include" use="@pattern"/>
  • Avoid use of the '//' axis when it is possible to define an XPath more explicitly
  • For a single document, an XML Include is generally faster than calling the document() function.
  • When defining XML includes, only include files you need, and only include data or metadata if you need it.
  • When you need to selectively acquire the data from XML Includes based on some metadata property, it may be more efficient to include only the metadata and get the data with the document() function if you anticipate needing only a handful out of many.