I'm running a Cocoon 2.2 Webapp on a Tomcat 7 Server and facing some performance issues.
I do some aggregations of large xml files, transform them multiple times and finally serialize the streams to pdf that could contain > 1000 pages. These input xml files grew over the last years and so did the output. For that I had to adjust the jvm settings again and again. Since we're running Tomcat in an 32bit environment I now reached the max of 1600 mb of memory that could be allocated for the jvm. Now my Cocoon sometimes quits with Java Heap Space issues.
I ended up reproducing my Cocoon tasks sporadically with Ant
. And I wonder: the whole process is about 3 times faster than with Cocoon on Tomcat, on a less powerful machine! The needed memory is also about the half of the memory that is needed by Cocoon on Tomcat.
Is this a Tomcat issue? With Ant I always have to serialize the XML that I produce with each step, whereas with Cocoon I hold a XML Stream in the memory. Is that the problem?

Any ideas, experiences, alternatives are much appreciated

Matthias