commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Pitts (JIRA)" <>
Subject [jira] [Commented] (OGNL-20) Performance - Replace synchronized blocks with ReentrantReadWriteLock
Date Tue, 06 Sep 2011 21:21:09 GMT


Daniel Pitts commented on OGNL-20:

Do keep in mind that the ConcurrentHashMap is new in Java 1.5.  If you are targetting older
JDK/JVM, you'll need to have other strategies that can work for those too (with perhaps degraded
concurrency performance).  Relatedly, if you *are* targeting 1.5+, then you should be using
generics here, and not raw types, eg: 
"Map<Method, Class[]> cache = new ConcurrentHashMap<Method, Class[]>();"

I do like the idea of using ConcurrentHashMap though.

> Performance - Replace synchronized blocks with ReentrantReadWriteLock
> ---------------------------------------------------------------------
>                 Key: OGNL-20
>                 URL:
>             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:


View raw message