xref: /aosp_15_r20/external/javassist/src/test/test1/BenchProceed.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package test1;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li class BenchProceed2 {
calc2()4*f1fbf3c2SXin Li     public void calc2() {
5*f1fbf3c2SXin Li         for (long i = 0; i < 10000000; ++i)
6*f1fbf3c2SXin Li             Math.sqrt(i);
7*f1fbf3c2SXin Li     }
8*f1fbf3c2SXin Li }
9*f1fbf3c2SXin Li 
10*f1fbf3c2SXin Li public class BenchProceed {
11*f1fbf3c2SXin Li     public double d;
12*f1fbf3c2SXin Li     public java.lang.reflect.Method calcM;
13*f1fbf3c2SXin Li 
14*f1fbf3c2SXin Li     public static final int N = 1000000;
15*f1fbf3c2SXin Li 
BenchProceed()16*f1fbf3c2SXin Li     public BenchProceed() throws Exception {
17*f1fbf3c2SXin Li         calcM = this.getClass().getDeclaredMethod("calc", new Class[0]);
18*f1fbf3c2SXin Li     }
19*f1fbf3c2SXin Li 
calc()20*f1fbf3c2SXin Li     public void calc() {
21*f1fbf3c2SXin Li         d = Math.sqrt(3.0);
22*f1fbf3c2SXin Li     }
23*f1fbf3c2SXin Li 
p()24*f1fbf3c2SXin Li     public int p() {
25*f1fbf3c2SXin Li         long time = System.currentTimeMillis();
26*f1fbf3c2SXin Li         for (int i = N; i > 0; --i)
27*f1fbf3c2SXin Li             calc();
28*f1fbf3c2SXin Li 
29*f1fbf3c2SXin Li         long time2 = System.currentTimeMillis();
30*f1fbf3c2SXin Li         return (int)(time2 - time);
31*f1fbf3c2SXin Li     }
32*f1fbf3c2SXin Li 
q()33*f1fbf3c2SXin Li     public int q() {
34*f1fbf3c2SXin Li         long time = System.currentTimeMillis();
35*f1fbf3c2SXin Li         for (int i = N; i > 0; --i)
36*f1fbf3c2SXin Li             calc();
37*f1fbf3c2SXin Li 
38*f1fbf3c2SXin Li         long time2 = System.currentTimeMillis();
39*f1fbf3c2SXin Li         return (int)(time2 - time);
40*f1fbf3c2SXin Li     }
41*f1fbf3c2SXin Li 
s()42*f1fbf3c2SXin Li     public int s() {
43*f1fbf3c2SXin Li         BenchProceed2 bp = new BenchProceed2();
44*f1fbf3c2SXin Li         for (int i = 0; i < 5; ++i)
45*f1fbf3c2SXin Li             bp.calc2();
46*f1fbf3c2SXin Li 
47*f1fbf3c2SXin Li         return 0;
48*f1fbf3c2SXin Li     }
49*f1fbf3c2SXin Li 
t()50*f1fbf3c2SXin Li     public int t() {
51*f1fbf3c2SXin Li         BenchProceed2 bp = new BenchProceed2();
52*f1fbf3c2SXin Li         for (int i = 0; i < 5; ++i)
53*f1fbf3c2SXin Li             bp.calc2();
54*f1fbf3c2SXin Li 
55*f1fbf3c2SXin Li         return 0;
56*f1fbf3c2SXin Li     }
57*f1fbf3c2SXin Li 
before(Object[] args)58*f1fbf3c2SXin Li     public void before(Object[] args) {
59*f1fbf3c2SXin Li     }
60*f1fbf3c2SXin Li 
replace(Object[] args)61*f1fbf3c2SXin Li     public Object replace(Object[] args) {
62*f1fbf3c2SXin Li         try {
63*f1fbf3c2SXin Li             return calcM.invoke(this, args);
64*f1fbf3c2SXin Li         }
65*f1fbf3c2SXin Li         catch (Exception e) {
66*f1fbf3c2SXin Li             System.out.println(e);
67*f1fbf3c2SXin Li         }
68*f1fbf3c2SXin Li 
69*f1fbf3c2SXin Li         return null;
70*f1fbf3c2SXin Li     }
71*f1fbf3c2SXin Li 
main(String[] args)72*f1fbf3c2SXin Li     public static void main(String[] args) throws Exception {
73*f1fbf3c2SXin Li         BenchProceed bp = new BenchProceed();
74*f1fbf3c2SXin Li         System.out.println("iteration " + N);
75*f1fbf3c2SXin Li         System.out.println("p (msec) " + bp.p());
76*f1fbf3c2SXin Li         System.out.println("q (msec) " + bp.q());
77*f1fbf3c2SXin Li         System.out.println("p (msec) " + bp.p());
78*f1fbf3c2SXin Li         System.out.println("q (msec) " + bp.q());
79*f1fbf3c2SXin Li 
80*f1fbf3c2SXin Li         bp.s();
81*f1fbf3c2SXin Li         bp.t();
82*f1fbf3c2SXin Li     }
83*f1fbf3c2SXin Li }
84