HI Magnus, I have also noticed that issue, but only with extremely large WAR/EAR files. Currently the CactifyWar task only checks to see if the given JARs are present and logs a message. The problem comes when the archive grows very big - then the cactifywar task has to look all over it to check if the requested JARs are present.
I think it is reasonable to have a parameter for the task and instruct it to skip the search when this parameter is set. I don't see your patch attached. Maybe you forgot to attach it? Thanks for the point. 2008/8/19 Magnus Grimsell <[EMAIL PROTECTED]> > Hi all, > > We have been working with improving the performance of our build loop the > last week. > When profiling we realized that 37% of a complete build is spent in > CactifyWarTask.addCactusJars(). Even more when building separate targets. > > To solve this we made a patch where you can tell CactifyWarTask that the > cactus jars is already present. Do you think this is a good approach? > I've attached the patch and the profile report so you guys can have look at > it before I commit anything. > > Profile report: > Call tree (all threads together) > > > +--------------------------------------------------------------------------------------------------+------------------+ > | Name > | Time (ms) | > > +--------------------------------------------------------------------------------------------------+------------------+ > | +---<All threads> > | 375 829 100 % | > | | > | | > | +---org.apache.tools.ant.launch.Launcher.main(String[]) > | 375 016 100 % | > | | | > | | > | | +---iipax.embedded.ant.Application.execute() > | 235 536 63 % | > | | | | > | | > | | | > +---iipax.embedded.ant.application.TestApplication.makeEarTestable(File) > | 166 597 44 % | > | | | | | > | | > | | | | > +---iipax.embedded.ant.application.TestApplication.cactifyEar(File, File) > | 164 644 44 % | > | | | | | | > | | > | | | | | +---org.apache.cactus.integration.ant.CactifyEarTask.execute() > | 164 644 44 % | > | | | | | | > | | > | | | | | > +---org.apache.cactus.integration.ant.CactifyEarTask.createCactusWar() > | 153 834 41 % | > | | | | | | | > | | > | | | | | | > +---org.apache.cactus.integration.ant.CactifyWarTask.execute() > | 141 147 38 % | > | | | | | | | | > | | > | | | | | | | > +---org.apache.cactus.integration.ant.CactifyWarTask.addCactusJars() > | 138 312 37 % | > | | | | | | | | > | | > | | | | | | | +---org.apache.tools.ant.taskdefs.Zip.execute() > | 2 100 1 % | > | | | | | | | | > | | > | | | | | | | > +---org.apache.cactus.integration.ant.CactifyWarTask.getOriginalWebXml() > | 718 0 % | > | | | | | | | | > | | > | | | | | | | > +---org.apache.cactus.integration.ant.CactifyWarTask.cactifyWebXml(WebXml) > | 15 0 % | > | | | | | | | > | | > | | | | | | > +---org.apache.cactus.integration.ant.CactifyEarTask.addEjbReferencesToWar(File) > | 12 687 3 % | > | | | | | | > | | > | | | | | +---org.apache.tools.ant.taskdefs.Zip.execute() > | 9 184 2 % | > | | | | | | > | | > | | | | | > +---org.apache.cactus.integration.ant.CactifyEarTask.getOriginalApplicationXml() > | 1 625 0 % | > | | | | | > | | > | | | | > +---iipax.embedded.ant.application.TestApplication.createTestWar() > | 1 921 1 % | > | | | | | > | | > | | | | +---java.io.File.delete() > | 31 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.Application.buildPP(ProductPart, String) > | 24 335 6 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.Compiler.compile() > | 23 609 6 % | > | | | | > | | > | | | > +---iipax.embedded.ant.application.PPFileAssembler.addPP(ProductPart) > | 5 562 1 % | > | | | | > | | > | | | > +---iipax.embedded.ant.application.EarUnit.addThirdParties(Collection) > | 3 546 1 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.EarUnit.addPPs(Collection) > | 2 906 1 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.CrossCut.addPP(ProductPart, > Task) | 2 562 1 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.WebStartApplication.create() > | 2 056 1 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.EjbRefAdder.modify() > | 1 484 0 % | > | | | | > | | > | | | > +---iipax.embedded.ant.application.ConfigurationWriter.addPP(ProductPart) > | 1 015 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.SqlWriter.close() > | 953 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.Application.createInstall() > | 625 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.CrossCut.close() > | 234 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.application.EarUnit.close() > | 31 0 % | > | | | | > | | > | | | +---iipax.embedded.ant.Application.createAppDirs() > | 15 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.write(byte[], int, int) > | 22 554 6 % | > | | | > | | > | | +---org.apache.tools.tar.TarOutputStream.write(byte[], int, int) > | 22 437 6 % | > | | | > | | > | | +---com.puppycrawl.tools.checkstyle.CheckStyleTask.execute() > | 19 671 5 % | > | | | > | | > | | +---org.apache.tools.zip.ZipFile$BoundedInputStream.read(byte[], > int, int) | 10 895 3 % | > | | | > | | > | | +---iipax.embedded.ant.ApiClosure.execute() > | 6 921 2 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.write(byte[], int, int) > | 3 311 1 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.putNextEntry(ZipEntry) > | 3 203 1 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.write(byte[], int, int) > | 2 920 1 % | > | | | > | | > | | +---org.apache.tools.zip.ZipFile.<init>(File, String) > | 2 048 1 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.close() > | 1 217 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipFile.getInputStream(ZipEntry) > | 484 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.putNextEntry(ZipEntry) > | 469 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.write(byte[], int, int) > | 265 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.write(byte[], int, int) > | 250 0 % | > | | | > | | > | | > +---iipax.embedded.ant.ProductPartContainer.addConfiguredComponent(Component) > | 203 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.close() > | 184 0 % | > | | | > | | > | | +---org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser() > | 171 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipFile$BoundedInputStream.read(byte[], > int, int) | 149 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.putNextEntry(ZipEntry) > | 129 0 % | > | | | > | | > | | +---org.apache.tools.tar.TarOutputStream.putNextEntry(TarEntry) > | 125 0 % | > | | | > | | > | | +---org.apache.tools.tar.TarOutputStream.closeEntry() > | 78 0 % | > | | | > | | > | | +---org.apache.xerces.parsers.AbstractSAXParser.parse(InputSource) > | 62 0 % | > | | | > | | > | | +---org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser() > | 31 0 % | > | | | > | | > | | +---org.apache.xerces.parsers.AbstractSAXParser.parse(InputSource) > | 31 0 % | > | | | > | | > | | +---org.apache.xerces.parsers.AbstractSAXParser.parse(InputSource) > | 31 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.close() > | 20 0 % | > | | | > | | > | | +---org.apache.tools.tar.TarOutputStream.<init>(OutputStream) > | 15 0 % | > | | | > | | > | | +---org.apache.tools.tar.TarEntry.<init>(String) > | 15 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.putNextEntry(ZipEntry) > | 15 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipOutputStream.putNextEntry(ZipEntry) > | 15 0 % | > | | | > | | > | | +---org.apache.tools.zip.ZipEntry.<init>(String) > | 15 0 % | > | | | > | | > | | +---com.cenqua.clover.tasks.CloverTask.<clinit>() > | 15 0 % | > | | | > | | > | | +---org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser() > | 15 0 % | > | | | > | | > | | +---org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser() > | 15 0 % | > | | > | | > | +---java.lang.ref.Finalizer$FinalizerThread.run() > | 437 0 % | > | | > | | > | +---java.lang.ref.Reference$ReferenceHandler.run() > | 328 0 % | > | | > | | > | +---java.lang.Thread.run() > | 31 0 % | > | | > | | > | +---java.lang.ClassLoader.loadClassInternal(String) > | 15 0 % | > > +--------------------------------------------------------------------------------------------------+------------------+ > > Generated by __PRODUCT_NAME__ 2008-aug-19 09:25:22 > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- Regards, Petar! Karlovo, Bulgaria. - - - - - - - - | Author @ Manning Publications. | Technical Consultant @ HP | BGJUG-Bulgarian Java User Group Leader. | Apache Jakarta PMC member. | Jakarta Cactus Lead Developer. | Blogger: http://weblogs.java.net/blog/paranoiabla/ - - - - - - - - Public PGP Key at: https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611 Key Fingerprint: A369 A7EE 61BC 93A3 CDFF 55A5 1965 8550 C311 0611