[wpkg-users] [Bug 233] New: Command invokations cause unneccessary delays

bugzilla-daemon at bugzilla.wpkg.org bugzilla-daemon at bugzilla.wpkg.org
Mon Aug 1 14:38:53 CEST 2011


http://bugzilla.wpkg.org/show_bug.cgi?id=233

           Summary: Command invokations cause unneccessary delays
           Product: WPKG
           Version: other
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: wpkg.js
        AssignedTo: mangoo at wpkg.org
        ReportedBy: malte at malte.homeip.net
         QAContact: wpkg-users at lists.wpkg.org


Created attachment 206
  --> http://bugzilla.wpkg.org/attachment.cgi?id=206
Proposed enhancement in execution time

Whenever wpkg.js executes some external command, it enters a polling loop to
wait for the process to exit.  This loop has a delay of 1000ms, which can add
up to quite some delay for just idling around.
This isn't so much of a problem when actually installing something, but when
using "execute" type checks, it can severely slow down the boot process.
While Windows performs quite badly wrt. spawning a lot of processes anyway and
WSH has its share, too, WPKG should probably not add that much of a delay on
top of it.

Test case:
    <package id="exec-speed-demo" name="Execution Speed Demo">
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
        <check type="execute" path="cmd /cecho."/>
    </package>

Without the attached patch, wpkg.js /install:exec-speed-demo takes ~22s.  With
the patch, this drops down to ~4s.
Sure such a packge should rather just execute one script for the complete
check, but the same holds for 20 individual packages with just one execute
check each.

The change in timeout handling is intended to prevent summing up the expected
high inaccuracies of ten times as many WScript.Sleep() calls.

I'd consider 100ms a good compromise between not hogging the CPU and an
acceptable response time for "execute" checks.

Thanks for considering!

-- 
Configure bugmail: http://bugzilla.wpkg.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.



More information about the wpkg-users mailing list