On Fri, 7 Mar 2003, Sylvain Wallez wrote:
Yesterday I measured a performance enhancement by the factor 20x . Before each request took 2000-5000ms, which was untenable. After setting this option, each request took 50-100ms(cached).
Perhaps you have an idea, where the problem lie on?
The problem, I think, comes from the fact that XSLTProcessor uses the transient store to store Templates, and that the <transient-store> in cocoon.xconf has the <parameter name="use-persistent-cache" value="true"/>.
So we actually have a transient store that persists its contents to disk !!!
This is okay, if it's only persists in dispose().
Unfortunately, it also persists on free() when the size exceeds the MRU limit (see org.apache.excalibur.store.impl.MRUMemoryStore)
Moreover, I just realized (unless I'm missing something) that our <persistent-store> only read/writes to disk without an in-memory MRU front-end. This may also explain some poor performance.
But a simple (object instanceof java.io.Serializable) due to checkSerializable() seems to be not enough to test if a object is serializable.
Yes, this isn't enough since the whole object graph starting at the serialized object must also be Serializable.
Sylvain
-- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }