diff options
Diffstat (limited to 'gprofng/testsuite/gprofng.display/jsynprog/Routine.java')
-rw-r--r-- | gprofng/testsuite/gprofng.display/jsynprog/Routine.java | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/gprofng/testsuite/gprofng.display/jsynprog/Routine.java b/gprofng/testsuite/gprofng.display/jsynprog/Routine.java new file mode 100644 index 0000000..cfe45d2 --- /dev/null +++ b/gprofng/testsuite/gprofng.display/jsynprog/Routine.java @@ -0,0 +1,224 @@ +/** + * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. + * This class implements the Intface interface + * increments value of integer and floats + */ + +import java.util.*; + +public class Routine implements Intface { + + /* add integers */ + public int add_int (int scale) { + int x = 0; + int kmax = 100*scale; + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { x = 0; + for (int k=0; k<kmax;k++) { + for (int j=0; j<10000;j++) { + x = x + 1; + } + } + } while (jsynprog.Timer() < tEnd); + return x; + } + + /* add double */ + public double add_double (int scale) { + double y = 0.0; + int kmax = 1*scale; + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { y = 0.0; + for (int k=0; k<kmax;k++) { + for (int j=0; j<10000;j++) { + y = y + 1.0; + } + } + } while (jsynprog.Timer() < tEnd); + return y; + } + + /* Use inner class */ + public Integer[] has_inner_class(int scale) { + class JInner { + Integer[] g_int = new Integer[3]; + + public Integer[] buildlist(int scale) { + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + for (int k=0; k<g_int.length; k++) { + int x = 0; + int imax = 10*scale; + for (int i=0; i<imax;i++) { + for (int j=0; j<10000;j++) { + x = x + 1; + } + } + g_int[k]=new Integer (x); + } + } while (jsynprog.Timer() < tEnd); + return g_int; + } + } + return ((new JInner()).buildlist(scale)); + } + + public void memalloc (int nsize, int scale) { + class myobj { + int nitem; + String shape; + String color; + + myobj() { + nitem = 4; + shape = "square"; + color = "blue"; + } + } + for (int j=0; j<60; j++) { + for (int i=0; i<20; i++) { + myobj[] blueobj = new myobj[1000000]; + } + } + } + + /* routine to do recursion */ + public void recurse(int i, int imax, int scale) { + if(i == imax) { + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + double x; + int j, k; + x = 0.0; + for(k=0; k<scale; k++) { + for(j=0; j<5000000; j++) { + x = x + 1.0; + } + } + } while (jsynprog.Timer() < tEnd); + } else { + recurse(i+1, imax, scale); + } + } + + /* routine to do deep recursion */ + public void recursedeep(int i, int imax, int scale) { + if(i == imax) { + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + double x; + int j, k; + x = 0.0; + for(k=0; k<scale; k++) { + for(j=0; j<5000000; j++) { + x = x + 1.0; + } + } + } while (jsynprog.Timer() < tEnd); + } else { + recursedeep(i+1, imax, scale); + } + } + + + /* bounce -- example of indirect recursion */ + public void bounce(int i, int imax, int scale) { + if(i == imax) { + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + double x; + int j, k; + x = 0.0; + for(k=0; k < scale; k++) { + for(j=0; j<5000000; j++) { + x = x + 1.0; + } + } + } while (jsynprog.Timer() < tEnd); + } else { + bounce_b(i, imax, scale); + } + } + + private void bounce_b(int i, int imax, int scale) { + bounce(i+1, imax, scale); + return; + } + + + /* large array */ + public void array_op(int scale) { + int size = 50000; + int imax = 1*scale; + Integer[] y = allocate_array(3*size); + Integer[] z = allocate_array(size); + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + for (int i=0; i<imax; i++) { + System.arraycopy(y, 2, z, 0, size); + } + } while (jsynprog.Timer() < tEnd); + } + + /* define large array */ + private Integer[] allocate_array(int num) { + Integer[] x = new Integer[num]; + for (int i=0; i<num;i++) { + x[i] = new Integer(i); + } + return x; + } + + + /* large vector */ + public void vector_op(int scale) { + Vector v = allocate_vector(); + int imax = 1*scale; + int jmax = 1*scale; + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + for (int i=0; i<imax; i++) { + vrem_last(v); + } + for (int j=0; j<jmax; j++) { + vrem_first(v); + } + } while (jsynprog.Timer() < tEnd); + } + + /* define large Vector */ + private Vector allocate_vector() { + Vector<Integer> v1 = new Vector<Integer> (200000); + for (int i=0; i<1000000;i++) { + v1.add(new Integer(i)); + } + return v1; + } + + /* remove last element of vector */ + private void vrem_last(Vector v) { + v.remove(v.size()-1); + } + + /* remove first element of vector */ + private void vrem_first(Vector v) { + v.remove(0); + } + + + /* Spend time in system calls */ + public void sys_op(int scale) { + long stime ; + int jmax = 1000000; + int imax = 4; + double tEnd = jsynprog.Timer() + jsynprog.testtime; + do { + for (int i = 0; i < imax; i++) { + for(int j=0; j<jmax; j++) { + stime = System.currentTimeMillis(); + } + } + } while (jsynprog.Timer() < tEnd); + } + +} //end of class |