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