harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Shipilev" <aleksey.shipi...@gmail.com>
Subject Re: [jira] Commented: (HARMONY-6056) [classlib][jit][opt][performance] Optimize heap allocations in String(String, int) constructor for JIT
Date Thu, 08 Jan 2009 09:48:12 GMT
That's awesome, Jim!
Thanks for coming in :)

However, you seem to be missing the point. I was talking about
refactoring Kevin's patch to fit the stated requirements. This is
merely because Kevin claim the patch already gives the boost for
SPECjbb2005. Kevin already has the specialized conversion in
String(String, int) private constructor.

Nevertheless, your specialized version looks good with regards to
performance numbers, we need to test what's better for radix-10
conversion: Jim's version or Kevin's one now.

Thanks a lot,
Aleksey.

On Thu, Jan 8, 2009 at 12:11 PM, Jim Yu <junjie0122@gmail.com> wrote:
> Hi Aleksey,
> I very agree with you and I have implemented an optimized algorithm for
> Integer.toString(int) method. Thanks to your benchmark, here are the test
> results[1] on my windows platform.  I've raised a JIRA at
> https://issues.apache.org/jira/browse/HARMONY-6068
> [1]
> Result for Harmony java6 branch:
> (String)base + (int)add:
> -------------------------------------------
>  base length (vars with rows): 0..2..10
>  add length (vars with cols): 0..2..10
>
>  loop duration = 100 msecs
>  target variance = 0.05
>
> ops/msec, the more the better:
> 6721, 6096, *4650, *3846, *3178,
> *8080, *5833, *4447, 3731, 3048,
> *7985, *5848, 4788, 3727, *3114,
> *7891, 5592, *4389, *3560, 3048,
> 8388, 5607, *4522, 3727, 3051,
>
> After applied my patch:
> (String)base + (int)add:
> -------------------------------------------
>  base length (vars with rows): 0..2..10
>  add length (vars with cols): 0..2..10
>
>  loop duration = 100 msecs
>  target variance = 0.05
>
> ops/msec, the more the better:
> 8322, 6721, 4791, 4788, 4788,
> 8388, 6721, 5156, *5012, 4797,
> 8388, 6707, 5161, *4963, 4795,
> 8388, 6707, *5126, 4802, 4788,
> *8048, 6700, *5021, 4802, *4687,
>
> 2009/1/7 Aleksey Shipilev <aleksey.shipilev@gmail.com>
>
>> Ok, we can implement the in-place Integer.toString() and specialize
>> the radix-10 conversion in Integer. Then Classlib performance guys
>> might use the inplace conversion to optimize StringBuilder performance
>> or even catch the concatenation like J9 does.
>>
>> My idea is to share whatever optimization between all VMs that use the
>> Classlib.
>>
>> Thanks,
>> Aleksey.
>>
>> On Wed, Jan 7, 2009 at 5:46 PM, Tim Ellison <t.p.ellison@gmail.com> wrote:
>> > Aleksey Shipilev wrote:
>> >> Am I understanding right that private String(String, int) is inlined
>> >> by J9 JIT when (String)s1 + (int)v1 is required?
>> >
>> > Yes - so for DRLVM, Kevin's patch in HARMONY-6056 will be impotent.
>> >
>> > Regards,
>> > Tim
>> >
>> >
>>
>
>
>
> --
> Best Regards,
> Jim, Jun Jie Yu
>
> China Software Development Lab, IBM
>

Mime
View raw message