Proxy.isProxyClass scalability

Peter Levart peter.levart at gmail.com
Wed Apr 24 12:21:42 UTC 2013


On 04/24/2013 09:16 AM, Peter Levart wrote:
>
> On 04/24/2013 01:43 AM, Mandy Chung wrote:
>> Precise check should be to validate if the given interfaces == the 
>> proxy interfaces implemented by the cached proxy class (i.e. 
>> proxyClass.getInterfaces()).
>
> Hi Mandy,
>
> I will try to profile this approach as a post-validation and let you 
> know the results.
>

Hi Mandy,

Here's the modified webrev using optimized String-based sub-keys and 
pos-validation of proxyClass using proxyClass.getInterfaces():

https://dl.dropboxusercontent.com/u/101777488/jdk8-tl/proxy-wc/webrev.04/index.html

The benchmark results are the following:


Summary (4 Cores x 2 Threads i7 CPU):
                                                WeakCache+
                                         ns/op  Strings key+
Test                     Threads     Original  getIntfcs() post-valid.
=======================  =======  ===========  ===========
Proxy_getProxyClass            1     2,453.77       565.96
                                4     3,051.12       653.81
                                8     5,113.27     1,174.33

Proxy_isProxyClassTrue         1        94.96        41.47
                                4     2,102.29        41.57
                                8     4,823.50        71.80

Proxy_isProxyClassFalse        1        86.59         1.36
                                4     2,139.05         1.36
                                8     4,639.17         2.72

Annotation_equals              1       222.86       195.39
                                4     2,972.93       197.66
                                8     9,658.96       338.62


...  not that bad, but not so great either, compared to Weakly 
referenced interfaces-based sub-key and no post-validation:

WeakCache+
Test                     Threads  ns/op Original  intfcs key
=======================  =======  ============== ===========
Proxy_getProxyClass            1        2,403.27 163.57
                                4        3,039.01 211.70
                                8        5,193.58 322.14

Proxy_isProxyClassTrue         1           95.02 41.23
                                4        2,266.29 42.20
                                8        4,782.29 72.21

Proxy_isProxyClassFalse        1           95.02 1.36
                                4        2,186.59 1.36
                                8        4,891.15 2.72

Annotation_equals              1          240.10 194.61
                                4        1,864.06 198.81
                                8        8,639.20 342.90


Regards, Peter




More information about the core-libs-dev mailing list