harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: Security Performance issue
Date Fri, 23 Jul 2010 16:08:33 GMT
On 22/Jul/2010 11:42, Deven You wrote:
> Profiling results show RI's Class.forName() takes much less time than
> Harmony ones. It may caused by harmony load too much classes, maybe we need
> consider load providers only needed.

You mean "Class.forName()" loading the same class (i.e. the time to
search and load a given class), or are you talking about the load/init
time for BouncyCastle's providers compared to the RI providers?

Regards,
Tim

> 2010/7/22 Regis <xu.regis@gmail.com>
> 
>> On 2010-07-22 14:26, Ray Chen wrote:
>>
>>> Hi Regis,
>>> You mean init these providers is slow, right? But actually we should
>>> not init unnecessary providers.
>>>
>>> I added some info in our code as following and you can see init these
>>> provider takes most of the time:
>>> <code>
>>> ...
>>> long start = System.currentTimeMillis();
>>> p = (Provider) Class.forName(providerClassName.trim(), true,
>>> cl).newInstance();
>>> System.out.println("init " + p.getName() + "takes " +
>>> (System.currentTimeMillis()-start) + " ms");
>>> providers.add(p);
>>> providersNames.put(p.getName(), p);
>>> long start2 = System.currentTimeMillis();
>>> initServiceInfo(p);
>>> System.out.println("init services of " + p.getName() + "takes " +
>>> (System.currentTimeMillis() - start2) + " ms" );
>>> ...
>>> </code>
>>>
>>> And the output is:
>>> init DRLCertFactorytakes 226 ms
>>> init services of DRLCertFactorytakes 6 ms
>>> init Cryptotakes 1 ms
>>> init services of Cryptotakes 1 ms
>>> init HarmonyJSSEtakes 0 ms
>>> init services of HarmonyJSSEtakes 1 ms
>>> init BCtakes 204 ms
>>> init services of BCtakes 11 ms
>>>
>>>
>>> On Thu, Jul 22, 2010 at 2:01 PM, Regis<xu.regis@gmail.com>  wrote:
>>>
>> init DRLCertFactorytakes 226 ms
>> init BCtakes 204 ms
>>
>> It seems provider itself spent a lot of time.
>>
>> Have you compared time of following code against RI and Harmony with the
>> same provider class name?
>>
>>
>> (Provider) Class.forName(providerClassName.trim(), true, cl).newInstance();
>>
>> If there were still huge gaps, I think it's not caused by way we load
>> providers, maybe there are other performance hole in some places. I agree
>> that the way loading providers still have room to improve, but we need to
>> find out and shoot the most outstanding issue first.
>>
>>
>>
>> --
>> Best Regards,
>> Regis.
>>
> 

Mime
View raw message