On Dec 8, 2011, at 10:21 AM, Denis Gervalle wrote: > On Thu, Dec 8, 2011 at 09:52, Vincent Massol <[email protected]> wrote: > >> >> On Dec 8, 2011, at 9:01 AM, Thomas Mortagne wrote: >> >>> Hi devs, >>> >>> Now that master just moved to 3.4-SNAPSHOT I would like to merge my >>> refactoring of the component manager. You can find the branch on >>> https://github.com/xwiki/xwiki-commons/tree/feature-improvecm. >>> >>> The rational is that it's then going to be indirectly tested during >>> the whole 3.4 timeframe. Never too careful with the most critical >>> code. >>> >>> I already detailed this on another mail but the major difference with >>> current implementation is that it's locking a lot less and since CM is >>> pretty heavily used (and is going to be used more and more) it should >>> make a noticeable difference. It also fix several bugs I found while >>> doing this refactoring and covering it with tests. >>> >>> Here are the related jira issues: >>> * http://jira.xwiki.org/browse/XCOMMONS-63 >>> * http://jira.xwiki.org/browse/XCOMMONS-65 >>> * http://jira.xwiki.org/browse/XCOMMONS-64 >>> * http://jira.xwiki.org/browse/XCOMMONS-66 >>> >>> Here is my +1 >> >> +1 >> >> How are we going to measure the performance improvements? >> > > Do we really need to waste time on measuring that precisely ? Do you see > any reason for it to be really worse ?
Well there are several things involved here: * verifying it works. I don't think Thomas has verified that yet (I mean in heavy multithreaded situations). Better doing it in a test than waiting for it to happen live. Also it's quite simple to write as can be testified by my example. * I don't see how testing could be bad * It's interesting to see if we win times. Because we've seen with a profiler that the whole time spent in ECM is about 15% of the overall time which is quite significant and yes it's good to know if we're improving this or not because if we do then we can advertise it in the release notes. I prefer knowing than just hiding my head in the sand. * It provides a baseline against which we can measure how we progress now in the future >> I'd propose that we add a performance unit test so that we can compare the >> 2 implementations. >> >> I can think of at least 2 tools for this: >> >> * ContiPerf: http://databene.org/contiperf >> I had written a quick minimalist test here: >> >> http://jira.xwiki.org/browse/XWIKI-6164?focusedCommentId=59460&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-59460 >> >> * Tempus-fugit: >> http://code.google.com/p/tempus-fugit/wiki/Documentation?tm=6 >> >> ContiPerf seems the best to me. >> >> We wouldn't run this test as part of the main test suite but it could be >> either run manually or triggered by a maven profile. >> >> WDYT? >> > > The change mades are all favorable to a performance improvement, but also > improve code quality and maintenance, so knowing precisely how much we > really get does not seems important to me. I do not really see the added > value for end users. Errr? So you're suggesting not to write tests anymore because they don't bring value to end users…. Come on, Denis, I thought you were better than that! :) Thanks -Vincent >> Thanks >> -Vincent _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

