[ https://issues.apache.org/jira/browse/HARMONY-6068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662299#action_12662299 ] Jim Yu commented on HARMONY-6068: --------------------------------- Sorry for bringing formatting changes, I've attached a new one : ) > [luni] Improve Integer.toString(int) performance > ------------------------------------------------ > > Key: HARMONY-6068 > URL: https://issues.apache.org/jira/browse/HARMONY-6068 > Project: Harmony > Issue Type: Improvement > Components: Classlib > Affects Versions: 5.0M8 > Reporter: Jim Yu > Assignee: Tim Ellison > Fix For: 5.0M9 > > Attachments: HARMONY-6068-final-V2.diff, HARMONY-6068-final.diff, HARMONY-6068-merged-v1.diff, HARMONY-6068-merged-v2.diff, HARMONY-6068.diff > > Original Estimate: 24h > Remaining Estimate: 24h > > I very agree with Aleksey Shipilev' comment [1] for JIRA HARMONY-6056 as following, so I implement an optimized algorithm for Integer.toString(int) method. Thanks to Aleksey Shipilev's benchmark, here are the test results[2] on my windows platform. > [1] "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." > [2] > 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, -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.