Excalibur 4.1 will have a number of performance enhancements that will be included in the scratchpad project. Among the improvements will be improved pool implementations, instrumentation of Components, and an improved ComponentManager (that is LogEnabled clean).
Already, the pools are a bit quicker do to a change from using ArrayList to store the pool references to using VariableSizeBuffer (the new Buffer classes in org.apache.avalon.excalibur.collections). These are *very* efficient classes. In some informal tests using LinkedList, Arraylist, CircularBuffer (since renamed and conformed to the new Buffer interface) the Buffer implementation outperformed the JDK List classes by a healthy margin. If you are using Lists to merely buffer classes and do not need to index individual instances, use the Excalibur Buffer classes. If you need to use Lists, use the ArrayList. In our tests, ArrayList does exhibit a linear degredation of performance compared to LinkedList, however it isn't until you have over 600 elements in the list until the ArrayList becomes less efficient than LinkedList. Expect to see the beginnings of the event based management system (The queues are already implemented), and some new pool implementations that are dumb by themselves, but when managed by a PoolController asynchronously resources can be managed in a much more efficient manner. After Excalibur 4.1 is released, I would recommend experimenting with the Excalibur Scratchpad in Cocoon Scratchpad. It will require a vote to promote the new stuff to the production jar, so it would be worth the testing in Cocoon. The benefit of all this is also the systemic change from managing change in inline code vs. managing change with an event based architecture. My estimation is that the new system will make Components easier to write, maintain, and the overall measured and perceived performance of the critical request path will increase significantly--especially under load. As I am working on this in a step by step manner, if you want to see it sooner, I will appreciate contributions.... :) The point of this email is to get your tastebuds salivating over some new and improved code. Don't worry, the core Avalon Excalibur jar will work with Cocoon as is--allowing Cocoon to upgrade leisurely. If you see an Avalon Excalibur Scratchpad jar in the Cocoon Scratchpad area, you will know that I have begun to test some of the new functionality. :P One of the side effects will be that the pools will no longer have debug messages in them due to the fact that they do slow things down and the pools will be well tested anyways. -- "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]