Method to Improve Process Startup Performance by Using Pre-processing Technique for Reading Static XML Files
Original Publication Date: 2005-Mar-07
Included in the Prior Art Database: 2005-Mar-07
Disclosed program provides a technique to efficiently read static XML files and in turn improve the process startup performance
Method to Improve Process Startup Performance by Using Pre -processing Technique for Reading Static XML Files
Typically, the configuration files are stored in XML format and in a large product like IBM WebSphere, there are a lot of XML configuration files that are static (immutable during the runtime). The process of parsing an XML is expensive and memory intensive. As a result it affects the process startup performance since most of the configuration files are read during the startup time.
To reduce the impact of XML parsing during the process startup the XML files are pre-processed during the compile time and converted into an intermediate format (Java class or Java serialized file). The runtime now reads the intermediate format which is faster than parsing the XML file. The results indicate a significant reduction in CPU usage when using the preprocessing technique (from 2% to 0.5% of CPU cycles -- about 75% improvement). Figure 1 describes this technique in detail.
Problem and solution scenario - 1
IBM WebSphere Performance Monitoring Infrastructure (PMI) XML template defines the statistics specification for the component. This template is used by the PMI component and it doesn't change during the runtime. In 5.x, this file is parsed and validated every time the server
is started. As the number of PMI templates increased in 6.0, this approach of parsing during server startup is proving to impact the server startup time.
In 6.0 the templates will be parsed and validated once during the build time and a Java look-up class will be generated. Each component will be able to generate a look-up class for all the templates in the component using an ANT task. The component should then register the generated look-up class with the PMI during the runtime. The PMI runtime will use the generated look...