Community
Participate
Working Groups
WTP 3.0M6 (All version of WTP actually) There is a need for performance reasons to make a standard parser pool available for all WTP (or better all Eclipse) plugins to reuse. There is substantial performance gains that can be obtained by reusing parser configurations. Particularly during XML loading and Validation. PDE refactored their use of XML parsers a while ago and the results can be seen in the following bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=143823 Ideally, each configuration that is needed would be added to the pull, and when parsing needs to happen, a request is made to the pool to retrieve an appropriate parser. I think it was mentioned once that osgi has the ability to provide a xml parser as well. I know that WTP uses some highly customized versions of Xerces, but there is no reason that these particular parsers and configurations couldn't be made available as a pool to help cut down on the overhead of instantiation and destruction of the xml parser every time it is needed. Validation scenarios will gain the biggest benefit of this scenario, especially on works spaces that may contain several hundred large XSDs (not uncommon when working on XML Standard projects for B2B scenarios). More information on reuse of parsers can be found here: http://www.ibm.com/developerworks/xml/library/x-perfap2.html http://xerces.apache.org/xerces2-j/faq-performance.html#faq-2
updated severity to enhancement
Valentin, it sounds like this might be useful, in particular to boost validation performance?
I know everyone is max'd out, but I think might even deserve some thought for our performance-M7 phase ... thought admit, not sure what it would take. I've seen what they do for some OSGI pools, and it's not much to implement (I don't think) but might be bigger change to make use of them.
The XSD EMF model also provides such a pool. See org.eclipse.xsd.util.DefaultJAXPPool. That would be useable from the layers that depend on the XSD model but now lower levels. And yes, we are maxed out for M7, so I'll mark as helpwanted. As David says, creating the pool is one thing, changing everything to use it is another.