Skip to Main Content
A number of techniques to improve the parsing performance of XML have been developed. Generally, however, these techniques have limited impact on the construction of a DOM tree, which can be a significant bottleneck. Meanwhile, the trend in hardware technology is toward an increasing number of cores per CPU. As we have shown in previous work, these cores can be used to parse XML in parallel, resulting in significant speedups. In this paper, we introduce a new static partitioning and load-balancing mechanism. By using a static, global approach, we reduce synchronization and load-balancing overhead, thus improving performance over dynamic schemes for a large class of XML documents. Our approach leverages libxm12 without modification, which reduces development effort and shows that our approach is applicable to real-world, production parsers. Our scheme works well with Sun's Niagara class of CMT architectures, and shows that multiple hardware threads can be effectively used for XML parsing.