Community
Participate
Working Groups
The recently added performance tests (see bug 57137 comment 6) are failing consistently. Need to investigate whether is an actual regression or a problem with the tests themselves.
See also bug 88208, where a problem with the collection of performance data in those tests was fixed.
Improved loadCatalog. It is better than 3.0 now. We used to check preferences for every content type being created, now we do it once after creating all content types, and only for content types that actually do have user settings.
There was a performance regression introduced by the fix to bug 67841. LazyInputStream/Reader was capturing IOExceptions in methods that run very often. This made describers run slower. Moved the try/catch block closer to the source of exceptions (#ensureAvailable), which runs much less often. This affects only testContentMatching.
There was a big performance hit caused by the way the extension registry is implemented now. ContentType#getDescriber used to query its configuration element every time. The performance characteristics of the registry API changed a lot since 3.0 so querying a configuration element became expensive (obtaining the describer would almost take the same cost of describing the contents). Changed ContentType#getDescriber to query the configuration element only once.
Improved performance for testIsKindOf as well. Will wait for next performance results before closing this.
#loadCatalog is the only test failing now. It is not a critical scenario (happens only once per session - if plug-ins are not installed/removed). The probable reason for being slower is that the extension registry might be slower now. All other ContentTypeManager tests are passing.
John, I forgot to ask you again: what are we supposed to do with tests that are expected to fail (because they are acknowlegedly slower than in 3.0)?
There is API in the performance test suite for adding a regression comment: Performance.getDefault().setComment( fPerformanceMeter, Performance.EXPLAINS_DEGRADATION_COMMENT, "This regression is expected because ...");
Ok, got it.