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

John Ross updated ARIES-1565:
-----------------------------
    Attachment: aries1565-profile.png

The ESA is 18 MB in total size. It contains 62 jars. It has 42 resources listed 
as content. It is a feature. Each content resource has its own start order, 
ranging from 1 to 42.

The alternate patch (1565.patch) using the existing cache facility makes little 
or no difference. For both the baseline and alternate patch scenarios, most of 
the time was spent reading the ZipInputStream (see attachment 
aries1565-profile.png). The proposed patch improves the performance by an 
average of 81.7%

The two technical issues referenced in a previous comment (jdk 1.6 target and 
directory cleanup) still need to be addressed. The change also needs to be 
based off of trunk. Finally, a decision regarding exactly how this should be 
incorporated needs to be made. Right now, I'm leaning towards simply putting it 
in subsystems, at least initially. I don't think switching to 1.6 will be as 
easy as it sounds, not if you want to address the potential race conditions, 
security issues, and possibility of many things writing to the temp area at the 
same time. I suggest we should use an existing utility such as Apache Commons 
or Google Guava. The latter's Files.createTempDir() seems like the way to go. 
Guava has an Apache 2.0 license and a manifest suggesting it can run in OSGi. 
If I do it, that's the way we'll have to go since I've already looked at the 
source.

[Baseline]

Trial 0 took 9214 ms
Trial 1 took 7866 ms
Trial 2 took 7834 ms
Trial 3 took 7818 ms
Trial 4 took 7707 ms
Trial 5 took 7771 ms
Trial 6 took 7673 ms
Trial 7 took 7758 ms
Trial 8 took 7754 ms
Trial 9 took 7641 ms
Average time across 10 trials: 7903.6 ms

[Alternate Patch]

Trial 0 took 9517 ms
Trial 1 took 7818 ms
Trial 2 took 7691 ms
Trial 3 took 7629 ms
Trial 4 took 7624 ms
Trial 5 took 7650 ms
Trial 6 took 7664 ms
Trial 7 took 7808 ms
Trial 8 took 7534 ms
Trial 9 took 7604 ms
Average time across 10 trials: 7853.9 ms

[Proposed Patch]

Trial 0 took 3091 ms
Trial 1 took 1418 ms
Trial 2 took 1294 ms
Trial 3 took 1235 ms
Trial 4 took 1341 ms
Trial 5 took 1145 ms
Trial 6 took 1279 ms
Trial 7 took 1163 ms
Trial 8 took 1181 ms
Trial 9 took 1314 ms
Average time across 10 trials: 1446.1 ms

> Performance Improvement: unpack subsystem artifacts to tmp folder to avoid 
> directly reading from zip archive
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1565
>                 URL: https://issues.apache.org/jira/browse/ARIES-1565
>             Project: Aries
>          Issue Type: Improvement
>          Components: Subsystem, Util
>    Affects Versions: subsystem-2.0.8, util-1.1.2
>            Reporter: Wouter Bancken
>         Attachments: 1565.patch, Call_Tree_2_0_8.html, 
> Call_Tree_John_Ross.html, Call_Tree_Wouter_Bancken.html, 
> aries1565-profile.png, test-service-subsystem-4.0.2-SNAPSHOT.esa
>
>
> h4. Description
> Aries copies ESA archives to a temporary zip file during the installation 
> phase. Afterwards, bundles are read directly from this temporary zip which 
> has a large impact on the startup performance of Aries applications. By 
> unpacking the esa artifact into the temporary folder it is unpacked only 
> once. Subsequent reads for the bundles (jars) can be read directly from the 
> folder. 
> h4. Pull request
> https://github.com/apache/aries/compare/subsystem-2.0.x...WouterBanckenACA:io_performance_optimalisation?expand=1
> h4. Mailinglist
> http://mail-archives.apache.org/mod_mbox/aries-user/201606.mbox/%3CCAL5nZgTq5FxDvURJbzcEZ9YHx6vTs3HAOuFYDYA3ec9OZbmwjA%40mail.gmail.com%3E



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to