https://issues.apache.org/bugzilla/show_bug.cgi?id=49384

           Summary: Fix for Bug 48746 causes slowdown in chmod task
                    execution
           Product: Ant
           Version: 1.8.1
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core tasks
        AssignedTo: notifications@ant.apache.org
        ReportedBy: do...@moonteeth.com


The fix for bug 48746 causes slowdown in task execution significantly.
On my system with the "time" command it appears to add around 400ms of latency
for each process exec.

I've only tested it on chmod, because one of our projects has need to chmod
massive files.

I have a simple build.xml:

<project name="chmodtest" default="doChmodSingle" basedir=".">
   <target name="doChmodSingle">
      <chmod dir="." type="file" perm="755" includes="**" parallel="false"/>
   </target>
   <target name="doChmodParallel">
      <chmod dir="." type="file" perm="755" includes="**" parallel="true"/>
   </target>

</project>

run against 100 files created with:
for i in `seq 1 100`; do touch $i; done

With the 1.8.1 stock PumpStreamHandler:

Buildfile: /mnt/disk1/home/awang/test/build.xml

doChmodSingle:

BUILD SUCCESSFUL
Total time: 41 seconds

real    0m41.483s
user    0m0.738s
sys     0m0.614s

With the Os.isFamily("windows") back in the StreamPumper constructor (this was
removed and replaced with true for the fix for bug 48746) the results are:

Buildfile: /mnt/disk1/home/awang/test/build.xml

doChmodSingle:

BUILD SUCCESSFUL
Total time: 0 seconds

real    0m1.079s
user    0m0.704s
sys     0m0.601s

With the doChmodParallel, the results are consistently:
stock 1.8.1 behavior
real    0m0.874s (this varies from 872-875 on about a dozen runs)
Os.isFamily("windows") check behavior:
real    0m0.474s (this is pretty consistent)

Because of AIX's annoying handling of parallelism, for certain large
directories, we just gave up and turned off parallelism.  Even with a realistic
maxparallel, the extra 400ms per execution can add as minutes to the build
script time.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to