[ 
https://issues.apache.org/jira/browse/OGNL-20?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13099054#comment-13099054
 ] 

Daniel Pitts commented on OGNL-20:
----------------------------------

I was looking through OgnlRuntime.java, and it looks like it is using Generics 
already. I was basing my comments on the code pasted in these comments. Not my 
best moment :-)

It looks like there are a lot of uses of the custom ClassCacheImpl too. I 
wonder what the performance impact of a ConcurrentHashMap based impl (instead 
of the custom hash table impl, which looks suspicious to me).

It appears the SCM import didn't capture the history of that class, I'd be 
interested in finding out why it was added, but not interested enough to do 
actual digging around :-)

> 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

        

Reply via email to