harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Varlamov (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-2815) [drlvm][performance] very slow security checks with quadratical dependence on number of stack frames
Date Fri, 26 Jan 2007 09:15:49 GMT

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

Alexey Varlamov updated HARMONY-2815:
-------------------------------------

    Component/s:     (was: Classlib)
                 DRLVM
     Issue Type: Improvement  (was: Bug)
        Summary: [drlvm][performance] very slow security checks with quadratical dependence
on number of stack frames  (was: [classlib][security][drlvm][performance] very slow security
checks with quadratical dependence on number of stack frames)

I believe the issue is basically fixed in DRLVM, dependency is nearly linear now.

> [drlvm][performance] very slow security checks with quadratical dependence on number
of stack frames
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2815
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2815
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: any/ia32
>            Reporter: Egor Pasko
>         Assigned To: Alexey Varlamov
>            Priority: Minor
>
> consider the following test:
> -----------------------------------------------------------------------
> import java.security.Security;
> public class SecurityPerfTest {
>     public static void main(String[] args) {
>         System.setSecurityManager(new SecurityManager());
>         for (int i = 0; i < args.length; i++ ) {
>             long start_time = System.currentTimeMillis();
>             int amount = Integer.parseInt(args[i]);
>             run(amount);
>             long total_time = System.currentTimeMillis() - start_time;
>             System.out.println(amount + " " + total_time);
>         }
>    }
>    public static void run(int count) {
>        if ( count < 0 ) {
>            return;
>        }
>        //System.out.println("Runner: " +  count);
>        System.getProperty("os.name");
>        run(count - 1);
>    }
> }
> -----------------------------------------------------------------------
> where each recursive call of run() checks for security permissions
> to run it, issue the recursion depth list via command-line parameters like this:
> java SecurityPerfTest 50 100 150 300 350 400 450 500 
> on Jrockit/ia32 the time spent for each step depends linearly on the number of
> iterations:
> 50 107 // this line should be ignored
> 100 1
> 150 1
> 300 3
> 350 5
> 400 6
> 450 7
> 500 9
> on Harmony (DRLVM) the dependency looks like quadratic:
> 50 114
> 100 647
> 150 1931
> 300 13798
> 350 21171
> 400 31116
> 450 43786
> 500 59547
> I suspect too many stack unwindings performed on this microbenchmark

-- 
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