aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Ross (JIRA)" <>
Subject [jira] [Updated] (ARIES-1565) Performance Improvement: unpack subsystem artifacts to tmp folder to avoid directly reading from zip archive
Date Fri, 24 Jun 2016 20:54:16 GMT


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


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:
>             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
> h4. Mailinglist

This message was sent by Atlassian JIRA

View raw message