- From: <noah_mendelsohn@us.ibm.com>
- Date: Fri, 9 Dec 2005 09:50:58 -0500
- To: Bryan Rasmussen <brs@itst.dk>
- Cc: "'ht@inf.ed.ac.uk'" <ht@inf.ed.ac.uk>, "'Michael Kay'" <mike@saxonica.com>, "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
Bryan Rasmussen writes: > I'm going to ask if we can run a project to provide the > benchmarking, especially as it will be important to our future > projects and so forth. I'm not quite sure who "we" is, but I would never discourage anyone from doing and publishing careful benchmarks. As it turns out, I've for several years been the technical lead on a team doing high performance validators. Indeed, we hope to publish some of our work in detail later this year. In my experience, careful benchmarking is difficult to do well, and benchmarking that's not done carefully is likely to yield misleading results. Among the factors I would strongly urge you to consider if you do serious benchmarking are: * The role of the API. Even SAX can be very slow relative to the capabilities of the best high performance parsers. Eric Perkins from our team gave a talk on this at XML 2005, including quantitative measurements of API overhead. * Programming languages and runtimes, e.g. Java vs. C * Compiler and JIT switches. We've seen swings of perhaps 50% in C parsers from switching compilers and optimization levels. >These variations are not consistent across parsers<. A parser which is a large body of code may benefit disproportionally from a system that does good global optimization or inlining. If you're testing a particular feature, its performance may be dominated by the ability of your compiler or JIT to optimize or inline code into the inner loop for that feature. * Processor and machine architecture. Results tend to be moderately consistent over multiple architectures, but not always. We've even seen in one case major variations resulting from the different cache architectures on two Thinkpads (yes, we checked with hardware level tracing). * As usual, you need to take some care in validating multiple instances, averging times, making sure the times you're measuring are correct, etc. Of course, if you have a particular build of a particular parser in a particular environment you can moderately easily measure variations as a function of schema features used. I wouldn't assume that the results tell you very much about those same features in a different parser, or especially with a different API, or even necessarily the same parser compiled or run differently. It's a big leap from doing such tests to concluding that "substition groups are {fast/slow}". Noah -------------------------------------- Noah Mendelsohn IBM Corporation One Rogers Street Cambridge, MA 02142 1-617-693-4036 -------------------------------------- Bryan Rasmussen <brs@itst.dk> 12/09/05 05:07 AM To: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org> cc: "'ht@inf.ed.ac.uk'" <ht@inf.ed.ac.uk>, noah_mendelsohn@us.ibm.com, "'Michael Kay'" <mike@saxonica.com> Subject: SV: performance testing of schemas I think we can see there is a need for this kind of benchmarking information, and perhaps correlation of benchmarking results with test suite conformance. I'm going to ask if we can run a project to provide the benchmarking, especially as it will be important to our future projects and so forth. Hopefully this will be okayed and we can get this data out there. Cheers, Bryan Rasmussen
Received on Friday, 9 December 2005 14:54:25 UTC