You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Olivier Lamy (JIRA)" <ji...@codehaus.org> on 2010/09/27 23:27:33 UTC

[jira] Issue Comment Edited: (MASSEMBLY-499) Poor performance in DirectoryArchiver due to unnecessary native calls

    [ http://jira.codehaus.org/browse/MASSEMBLY-499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=236641#action_236641 ] 

Olivier Lamy edited comment on MASSEMBLY-499 at 9/27/10 4:26 PM:
-----------------------------------------------------------------

fixed rev 1001903 
{code}
-Dassembly.useJvmChmod=true
or mojo configuration
useJvmChmod
{code}

      was (Author: olamy):
    fixed rev 1001903 
  
> Poor performance in DirectoryArchiver due to unnecessary native calls
> ---------------------------------------------------------------------
>
>                 Key: MASSEMBLY-499
>                 URL: http://jira.codehaus.org/browse/MASSEMBLY-499
>             Project: Maven 2.x Assembly Plugin
>          Issue Type: Bug
>    Affects Versions: 2.2-beta-5
>         Environment: Unix/Linux
>            Reporter: Altin Papa
>            Assignee: Olivier Lamy
>             Fix For: 2.2-beta-6
>
>
> 1) 
> maven-assembly-plugin calls DirectoryArchiver.copyFile( ArchiveEntry entry, String vPath ), which calls
> ArchiveEntryUtils.chmod( outFile, entry.getMode(), getLogger() );
> resulting in a native child Process being forked to do a chmod (on Unix only)
> The performance impact on a large assembly is enormous: patching DirectoryArchiver to not do this resulted in a performance improvement by more than 5 times.
> I've raised this with Plexus as http://jira.codehaus.org/browse/PLXCOMP-156
> 2)
> AssemblyFormatUtils should cache the environment, as AssemblyInterpolator does. Both, though, should use the latest *plexus* CommandLineUtils, as opposed to maven-assembly-plugin's own version. The plexus class uses System.getenv() (JDK5+) when available. 
> Generally, please see if you can review the use of native command calls, esp. in light of JDK5/6 APIs. Forked native calls had a horrible performance impact on our (large, highly modular) assembly; which has only been corrected by local patches of maven-assembly/plexus-archiver.
> Thanks!

-- 
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