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

Reply via email to