|
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.
|
| |