[ 
https://issues.apache.org/jira/browse/OPENJPA-1872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12928288#action_12928288
 ] 

Rick Curtis commented on OPENJPA-1872:
--------------------------------------

Committed revision 1031110 to trunk.

> Optimize CacheMap read performance
> ----------------------------------
>
>                 Key: OPENJPA-1872
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1872
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: performance
>    Affects Versions: 2.1.0
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>            Priority: Minor
>             Fix For: 2.1.0
>
>
> While digging through a profile I noticed that for every CacheMap.get(..) 
> call where there is a hit, I was seeing two underlying ConcurrentHashMap.get 
> method calls. This is because we always look to see if a given key exists in 
> the pinned map before looking in the main map. As the code stands today, it 
> is optimized for the existence of entries in the pinned map and I think that 
> is an incorrect assumption.
> With this JIRA I'm going to optimize the get(...), containsKey(...), and 
> containsValue(...) to check the main map for results before looking at the 
> pinned map. In a micro benchmark I observed approximately a 20% improvement 
> in the time required to call get(...) when there is a hit.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to