[ 
https://issues.apache.org/jira/browse/CXF-3261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Beryozkin updated CXF-3261:
----------------------------------

    Component/s: JAX-RS
       Assignee: Sergey Beryozkin

> JAX-RS: Performance improvement for JAXRSOutInterceptor.checkBufferingMode
> --------------------------------------------------------------------------
>
>                 Key: CXF-3261
>                 URL: https://issues.apache.org/jira/browse/CXF-3261
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>    Affects Versions: 2.3.1
>         Environment: JDK 1.6
>            Reporter: Ka-Lok Fung
>            Assignee: Sergey Beryozkin
>            Priority: Critical
>             Fix For: 2.3.3
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> While profiling CXF's JAX-RS implementation in a multi-threaded scenario (10 
> threads simultaneously hitting our JAX-RS CXF-based application, repeated for 
> many iterations), we noticed that a lot of time was spent inside 
> JAXRSOutInterceptor.checkBufferingMode.
> After examining the code we determined that the reason why was because 
> InjectionUtils.invokeBooleanGetter was explicitly invoking a method without 
> checking whether or not the method exists. Because the code relies on an 
> exception to determine whether or not the method exists, it's a bit expensive 
> because creating Exceptions is expensive in Java.
> Instead of just invoking the method and depending on NoSuchMethodException, 
> can you check to see if the method exists first before calling it? I do 
> realize that it probably involves iterating getMethods() but this should be 
> more efficient than generating the Exception.

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