You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Mikhail Fursov (JIRA)" <ji...@apache.org> on 2007/10/24 09:54:50 UTC

[jira] Updated: (HARMONY-4553) [drlvm][jit][perf]String _compareTo and _regionMatches calls replacement by REP CMPSW instructions

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

Mikhail Fursov updated HARMONY-4553:
------------------------------------

              Patch Info: [Patch Available]
    Estimated Complexity: Advanced
                 Summary: [drlvm][jit][perf]String _compareTo and _regionMatches calls replacement by REP CMPSW instructions  (was: [drlvm][jit][perf]String.compareTo method works slowly)

> [drlvm][jit][perf]String _compareTo and _regionMatches calls replacement by REP CMPSW instructions
> --------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4553
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4553
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Vladimir Strigun
>            Assignee: Mikhail Fursov
>         Attachments: HARMONY-4553-v2-em64t.patch, HARMONY-4553-v2-em64t.patch, HARMONY-4553-v2-em64t.patch, HARMONY-4553-v2.patch, HARMONY-4553-v2.patch, HARMONY-4553-v2.patch, HARMONY-4553-v2.patch, HARMONY-4553.patch
>
>
> The test below shows that String.compareTo(String) method significantly slower in comparison win Sun. 
> Results of test execution:
> java client: 1700 msec
> java server: 0 
> harmony server: 3360 msec
> Small test:
> public class CompareToTest{
>     public static void main(String[] args){
>         String st1 = new String("0 1 2 3 4 5 6 7 8 9");
>         String st2 = new String("0 1 2 3 4 5 6 7 8 9");
>         //warmup VM
>         stringCompareTo(st1, st2, 100000);
>         long start = System.currentTimeMillis();
>         stringCompareTo(st1, st2, 20000000);
>         long end = System.currentTimeMillis() -start;
>         System.out.println("String compareTo for equals strings completed in "+end +" msec");
>         st1 = new String("0 1 2 3 4 5 6 7 8 9abc");
>         //warmup VM
>         stringCompareTo(st1, st2, 100000);
>         long start1 = System.currentTimeMillis();
>         stringCompareTo(st1, st2, 20000000);
>         long end1 = System.currentTimeMillis() -start1;
>         System.out.println("String compareTo for non equals strings completed in "+end1 +" msec");
>         System.out.println("Total in "+(end1+end) +" msec");
>     }
>     public static void stringCompareTo(String st1, String st2, int num){
>         for(int x=0; x<num; x++) {
>             st1.compareTo(st2);
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.