harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-4552) [drlvm][jit][perf]instanceof operation works slowly in server mode
Date Fri, 27 Jul 2007 12:42:18 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-4552?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516016
] 

Mikhail Fursov commented on HARMONY-4552:
-----------------------------------------

Vladimir, 
1) 
What will be performance on your PC if you remove this line '
//if(obj instanceof String){} '
from the test?

Actually instanceof helper is not used in this test at all because String class is final,
so instanceof is replaced by direct Vtable comparison in translator.


2)
I checked -Xem opt log for this method and see that this check is eliminated and we measure
empty loop performance here.
With loop unrolling turned off I've got the same code for -Xem:server and -Xem:opt for this
method with the only difference in registers names used.
But -Xem:opt mode was executed 4 times faster.... Looks like code placing issue to me. Can
you recheck it please?
(JIT=-Xem:server/opt  -XX:jit.arg.optimizer.unroll=off)

> [drlvm][jit][perf]instanceof operation works slowly in server mode
> ------------------------------------------------------------------
>
>                 Key: HARMONY-4552
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4552
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Vladimir Strigun
>            Assignee: Mikhail Fursov
>
> The test below shows that instanceof significantly slower in comparison win Sun. 
> Results of test execution:
> java client: 2500 msec
> java server: 31 msec 
> harmony server: 4000 msec
> Small test:
> public class Test {
>     public static void main(String[] args) {
>         runTest(1000, new String());
>         long start = System.currentTimeMillis();
>         runTest(1000000000, new String());
>         long end = System.currentTimeMillis() - start;
>         System.out.println("completed in "+end);
>     }
>     public static void runTest(int num, Object obj) {
>         for(int i=0; i<num; i++) {
>             if(obj instanceof String){} 
>         }
>     }
> }

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


Mime
View raw message