You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Maurizio Cucchiara (JIRA)" <ji...@apache.org> on 2011/09/06 10:22:09 UTC
[jira] [Issue Comment Edited] (OGNL-20) Performance - Replace
synchronized blocks with ReentrantReadWriteLock
[ https://issues.apache.org/jira/browse/OGNL-20?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13097795#comment-13097795 ]
Maurizio Cucchiara edited comment on OGNL-20 at 9/6/11 8:21 AM:
----------------------------------------------------------------
Hi Olivier,
be aware that there is already:
# a [patch|WW-3580] which sensibly reduces the synchronized code using something like the double check idiom.
# an old [opensymphony patch|http://jira.opensymphony.com/browse/OGNL-101] which, if I recall correctly, uses concurrent version of the map implementation.
It would be very interesting to compare this 3 different approaches. Before that, I think we would need a performance test bench.
was (Author: maurizio.cucchiara):
Hi Olivier,
be aware that there is already:
# a [patch|WW-3580] which sensibly reduces the synchronized code using something like the double check idiom.
# an old [opensymphony patch|http://jira.opensymphony.com/browse/OGNL-101] which, if I recall correctly, uses concurrent version of the map implementation.
It would be very interesting to compare this 3 different approaches. Before that, I think we would need a performance test bench.
> Performance - Replace synchronized blocks with ReentrantReadWriteLock
> ---------------------------------------------------------------------
>
> Key: OGNL-20
> URL: https://issues.apache.org/jira/browse/OGNL-20
> Project: OGNL
> Issue Type: Improvement
> Environment: ALL
> Reporter: Greg Lively
>
> I've noticed a lot of synchronized blocks of code in OGNL. For the most part, these synchronized blocks are controlling access to HashMaps, etc. I believe this could be done far better using ReentrantReadWriteLocks. ReentrantReadWriteLock allows unlimited concurrent access, and single threads only for writes. Perfect in an environment where the ratio of reads is far higher than writes; which is typically the scenario for caching. Plus the access control can be tuned for reads and writes; not just a big synchronized{} wrapping a bunch of code.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira