[
http://jira.codehaus.org/browse/MASSEMBLY-424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=214127#action_214127
]
Paul Smith commented on MASSEMBLY-424:
--------------------------------------
through a set of thread dumps taken during an assembly run, I notice frequent
time spent in this state:
{noformat}
"main" prio=5 tid=0x0000000102800000 nid=0x100501000 runnable
[0x00000001004fe000]
java.lang.Thread.State: RUNNABLE
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:53)
at java.lang.ProcessImpl.start(ProcessImpl.java:91)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:509)
at
org.codehaus.plexus.util.cli.Commandline.execute(Commandline.java:636)
at
org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:140)
at
org.codehaus.plexus.util.cli.CommandLineUtils.executeCommandLine(CommandLineUtils.java:103)
at
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.executeLs(PlexusIoResourceAttributeUtils.java:277)
at
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributesByPath(PlexusIoResourceAttributeUtils.java:237)
at
org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils.getFileAttributes(PlexusIoResourceAttributeUtils.java:167)
at
org.codehaus.plexus.archiver.ArchiveEntry.createFileEntry(ArchiveEntry.java:157)
at
org.codehaus.plexus.archiver.AbstractArchiver.addFile(AbstractArchiver.java:374)
at
org.codehaus.plexus.archiver.AbstractArchiver.addFile(AbstractArchiver.java:290)
at
org.apache.maven.plugin.assembly.archive.archiver.AssemblyProxyArchiver.addFile(AssemblyProxyArchiver.java:474)
at
org.apache.maven.plugin.assembly.archive.task.AddArtifactTask.execute(AddArtifactTask.java:203)
at
org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask.addDependencySet(AddDependencySetsTask.java:195)
at
org.apache.maven.plugin.assembly.archive.task.AddDependencySetsTask.execute(AddDependencySetsTask.java:122)
at
org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase.addModuleBinaries(ModuleSetAssemblyPhase.java:236)
at
org.apache.maven.plugin.assembly.archive.phase.ModuleSetAssemblyPhase.execute(ModuleSetAssemblyPhase.java:131)
at
org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiver.createArchive(DefaultAssemblyArchiver.java:190)
at
org.apache.maven.plugin.assembly.mojos.AbstractDirectoryMojo.createDirectory(AbstractDirectoryMojo.java:85)
at
org.apache.maven.plugin.assembly.mojos.AbstractDirectoryMojo.execute(AbstractDirectoryMojo.java:63)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:268)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
{noformat}
>From looking into the
>PlexusIoResourceAttributeUtils.getFileAttributesByPath(..) method used by the
>addFile method during the dependency archive, it is doing a Process Fork
>per-Dependency to get the file attributes, which is a bit yucky.... that's not
>going to scale very well at all.
> poor performance of dependencySet in assembly descriptor (compared to using
> maven-dependency-plugin + fileSet)
> --------------------------------------------------------------------------------------------------------------
>
> Key: MASSEMBLY-424
> URL: http://jira.codehaus.org/browse/MASSEMBLY-424
> Project: Maven 2.x Assembly Plugin
> Issue Type: Bug
> Affects Versions: 2.2-beta-4
> Environment: maven 2.1.0, java 6u13, os x 10.5.6, macbook pro 5400rpm
> disk
> Reporter: Cameron Fieber
> Priority: Critical
>
> The performance of the dependencySet element in the assembly descriptor is
> significantly worse than achieving the equivalent result by doing an
> execution of dependency:copy-dependencies and including the
> target/dependencies folder as a fileSet in the assembly descriptor
> replacing:
> <assembly>
> ...
> <dependencySets>
> <dependencySet>
> <outputDirectory>lib</outputDirectory>
> </dependencySet>
> </dependencySets>
> ...
> </assembly>
> with:
> <assembly>
> ...
> <fileSet>
> <directory>${project.build.directory}/dependency</directory>
> <outputDirectory>lib</outputDirectory>
> </fileSet>
> ...
> </assembly>
> and (in pom.xml):
> ...
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-dependency-plugin</artifactId>
> <executions>
> <execution>
> <phase>package</phase>
> <goals>
> <goal>copy-dependencies</goal>
> </goals>
> <configuration>
> <includeScope>runtime</includeScope>
> </configuration>
> </execution>
> </executions>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-assembly-plugin</artifactId>
> ...
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira