[ 
https://issues.apache.org/jira/browse/WINK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12737999#action_12737999
 ] 

Michael Elman commented on WINK-114:
------------------------------------

VERY interesting indeed. Thanks Bryant! 
Well, it means that the HashMap must be always synchronized for multi-threaded. 
Collections.synchronizedMap() will solve this, but will reduce the efficiency 
of the cache. 
Synchronizing the HeaderDelegatesCache using read/write locks may be a better 
solution.

> Cache parsed Accept header content where possible
> -------------------------------------------------
>
>                 Key: WINK-114
>                 URL: https://issues.apache.org/jira/browse/WINK-114
>             Project: Wink
>          Issue Type: Improvement
>          Components: Common
>    Affects Versions: 0.1
>            Reporter: Nick Gallardo
>             Fix For: 0.2
>
>         Attachments: WINK-114-generic.patch, WINK-114-ThreadLocal.patch, 
> WINK-114-use-pattern.patch, WINK-114.patch
>
>
> AcceptHeaderDelete.fromString() is called for every invocation.  This drives 
> calls to string splits and some regex tools that start to show up in profiles 
> as taking up a notable amount of time.  Since the content for the Accept 
> headers will remain within a fairly bounded set, we can cache the parsed 
> content and improve performance.
> Here's a patch with a simple solution.  Really I think there's a better way 
> to do this.  Presumably, there are other headers where the same thing 
> applies.  We can handle those on an individual basis or we can come up with 
> something more generic that can be used by all HeaderDelegates.

-- 
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