You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (Resolved) (JIRA)" <ji...@apache.org> on 2011/10/24 17:29:32 UTC

[jira] [Resolved] (DERBY-5474) Speed up message splitting in build

     [ https://issues.apache.org/jira/browse/DERBY-5474?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Knut Anders Hatlen resolved DERBY-5474.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.9.0.0

Thanks, Kristian and Bryan.

All regression tests passed with jars built with the patch.
Committed revision 1188163.

The machine where I saw that the 15 invocations of splitmessages took 30 seconds, was a four-year-old laptop running Linux.

On various desktops running Solaris I've seen that it takes between 3 and 15 seconds, depending on how powerful the machines are. When changing to fork=no, it's reduced to 0-2 seconds on those machines.

So whereas it's cheaper on the more powerful machines, the cost is still not negligible, even though there are just 15 processes to be started. Bryan, perhaps your experiment ran with processes that were lighter and cheaper to fork than a JVM? Or maybe it was a multi-threaded build system so that other threads could utilize the CPU while one thread was kept up waiting for the forked process to fault in the runtime libraries, or whatever it is that's taking time?
                
> Speed up message splitting in build
> -----------------------------------
>
>                 Key: DERBY-5474
>                 URL: https://issues.apache.org/jira/browse/DERBY-5474
>             Project: Derby
>          Issue Type: Improvement
>          Components: Build tools
>    Affects Versions: 10.9.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>             Fix For: 10.9.0.0
>
>         Attachments: d5474.diff
>
>
> On a slow machine I sometimes use to build Derby, running the org.apache.derbyBuild.splitmessages tool takes 30 seconds and accounts for 15% of the total time needed to run "ant -q buildsource" (which builds the engine, the network server and the client, but not the tests or demos). The tool is invoked 15 times, and each time a new Java process is started because the Ant target has specified fork="yes". By changing it to run the splitmessages tool in the same Java process as the one running Ant, the time is reduced to 3-4 seconds on the same machine.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira