import java.lang.*; import java.util.*; public class ahl { public static void main(String[] argv) { int i,n,iter=0; double s=0,r=0,a,t2; long t1; Date D=new Date(); System.out.println( "ahl.java -- The Java version of Ahl's simple benchmark\n"); t1=D.getTime(); do { D=new Date(); } while (t1==D.getTime()); t1=D.getTime(); do { iter++; r=0; s=0; for (n=1;n<=100;n++) { a=n; for (i=1;i<=10;i++) { a=(double)Math.sqrt(a); r+=Math.random(); } for (i=1;i<=10;i++) { a=a*a; r+=Math.random(); } s+=a; } D=new Date(); } while ((D.getTime()-t1)<20000); t2=((double)(D.getTime()-t1))/1000; System.out.println(iter+" iterations"); System.out.println(t2/iter+" seconds per iteration"); System.out.println("Accuracy "+Math.abs(1010.-s/5.)); System.out.println("Random "+Math.abs(1000.-r)); } }
To run this applet in your browser, click here.
import java.applet.*; import java.awt.*; import java.util.*; public class ahlapplet extends Applet { Label[] l; Button b; public void init() { int i; resize(240, 240); setLayout(new GridLayout(7,1)); add(new Label("Ahl's Simple Benchmark",Label.CENTER)); add(new Label("Copyright (c) 1998 Eric Korpela",Label.CENTER)); b=new Button("Press me to start"); add(b); l=new Label[4]; l[0]=new Label("Iterations:"); l[1]=new Label("Seconds/iteration:"); l[2]=new Label("Accuracy:"); l[3]=new Label("Random:"); for (i=0;i<4;i++) { add(l[i]); } } public boolean action(Event e, Object label) { ahl(); return true; } private void ahl() { int i,n,iter=0; double s=0,r=0,a,t2; long t1; b.setLabel("Running"); l[0].setText("Iterations: Running"); l[1].setText("Seconds/iteration: Running"); l[2].setText("Accuracy: Running"); l[3].setText("Random: Running"); Date D=new Date(); t1=D.getTime(); do { D=new Date(); } while (t1==D.getTime()); t1=D.getTime(); do { iter++; r=0; s=0; for (n=1;n<=100;n++) { a=n; for (i=1;i<=10;i++) { a=(double)Math.sqrt(a); r+=Math.random(); } for (i=1;i<=10;i++) { a=a*a; r+=Math.random(); } s+=a; } D=new Date(); } while ((D.getTime()-t1)<20000); t2=((double)(D.getTime()-t1))/1000.0; l[0].setText("Iterations: "+iter); l[1].setText("Seconds/iteration: "+t2/iter); l[2].setText("Accuracy: "+Math.abs(1010.0-s/5.0)); l[3].setText("Random: "+Math.abs(1000.0-r)); b.setLabel("Press me to run again."); } public static void main(String args[]) { Frame frame=new Frame("ahlapplet"); frame.resize(frame.insets().left+frame.insets().right+360, frame.insets().top+frame.insets().bottom+360); ahlapplet ahl = new ahlapplet(); frame.add("Center",ahl); ahl.init(); ahl.start(); frame.show(); } }
var t_seconds=1 function ahl() { // The JavaScript version of Ahl's simple benchmark // Copyright 1998 Eric Korpela var iter=0; var D=new Date(); var t1=D.getTime(); while (t1==D.getTime()) { D=new Date(); } t1=D.getTime(); while ((D.getTime()-t1)<(1000*t_seconds)) { var r=0.0; var s=0.0; iter++; for (var n=1;n<=100;n++) { a=1.0*n; for (var i=1;i<=10;i++) { a=Math.sqrt(a); r+=Math.random(); } for (var i=1;i<=10;i++) { a=a*a; r+=Math.random(); } s+=a; } D=new Date(); } var t2=((1.0)*(D.getTime()-t1))/1000.0; document.write("<H1>Ahl's simple benchmark, the Javascript version.</H1>"); document.write('<P>I ran the benchmark for '+t2+' seconds.'); document.write('<HR><P>'+iter+' iterations'); document.write('<P>'+t2/iter+' seconds per iteration'); document.write('<P>accuracy='+Math.abs(1010.0-s/5.0)); document.write('<P>random='+Math.abs(1000.0-r)); document.write('<BR>'); document.write('<hr>\n'); document.write("<center><A HREF='homepage.html'>Back to Eric's Home Page</A></center>"); document.write('Copyright © 1998 Eric Korpela'); document.write('<a href="mailto:korpela@ssl.berkeley.edu"><address>'); document.write('korpela@ssl.berkeley.edu</address></a>') }