[ https://issues.apache.org/jira/browse/HARMONY-5900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sian January updated HARMONY-5900:
----------------------------------
Attachment: pack200-noSearchForSignatures.patch
Ok - I've just attached pack200-noSearchForSignatures.patch, which does what I thought the
other one did, i.e. doesn't call search from parseCpSignature(). I haven't got rid of the
other calls to search in this patch because I think it only happens a very few times so I'm
not sure if it's worth creating a map for. That might be worth testing though.
> [classlib][pack200] CpBands.parseCpSignature(Ljava/io/InputStream;) is hot
> --------------------------------------------------------------------------
>
> Key: HARMONY-5900
> URL: https://issues.apache.org/jira/browse/HARMONY-5900
> Project: Harmony
> Issue Type: Wish
> Components: Classlib
> Affects Versions: 5.0M6
> Environment: All Pack200 HEAD
> Reporter: Andrew Cornwall
> Attachments: pack200-noSearchForSignatures.patch, pack200-stringlookup-v1.patch,
pack200-stringlookup-v1.patch
>
>
> The method org/apache/harmony/unpack200/CpBands.parseCpSignature(Ljava/io/InputStream;)
appears to be very hot. I tried initially to optimize it by caching some of its arrays:
> static void clearArrayCache() {
> arrayCache = new SegmentConstantPoolArrayCache();
> }
>
> private static SegmentConstantPoolArrayCache arrayCache = new SegmentConstantPoolArrayCache();
>
> private int search(String[] array, String string) {
> if(array.length > 30) {
> List indexes = arrayCache.indexesForArrayKey(array, string);
> if (indexes.size() == 0) {
> return -1;
> }
> return ((Integer)indexes.get(0)).intValue();
> } else {
> for (int i = 0; i < array.length; i++) {
> if(array[i].equals(string)) {
> return i;
> }
> }
> return -1;
> }
> }
> ... but that didn't appear to increase performance. (Maybe all the searches are done
once?)
> Any ideas how to tune parseCpSignature to get it faster?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|