aboutsummaryrefslogtreecommitdiff
path: root/gprofng/testsuite/gprofng.display/jsynprog/Routine.java
diff options
context:
space:
mode:
Diffstat (limited to 'gprofng/testsuite/gprofng.display/jsynprog/Routine.java')
-rw-r--r--gprofng/testsuite/gprofng.display/jsynprog/Routine.java224
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