Revision: 3182
          http://vexi.svn.sourceforge.net/vexi/?rev=3182&view=rev
Author:   clrg
Date:     2008-11-06 22:49:47 +0000 (Thu, 06 Nov 2008)

Log Message:
-----------
Some very unscientific loop tests

Added Paths:
-----------
    trunk/core/org.vexi.core/src_dev/org/vexi/core/TimedTest.java

Added: trunk/core/org.vexi.core/src_dev/org/vexi/core/TimedTest.java
===================================================================
--- trunk/core/org.vexi.core/src_dev/org/vexi/core/TimedTest.java               
                (rev 0)
+++ trunk/core/org.vexi.core/src_dev/org/vexi/core/TimedTest.java       
2008-11-06 22:49:47 UTC (rev 3182)
@@ -0,0 +1,108 @@
+package org.vexi.core;
+
+import org.ibex.js.JSExn;
+import org.ibex.util.Log;
+
+abstract class TimedTest {
+    
+    static final int num = 10000;
+    static final Box box = new Box();
+    
+    abstract void test();
+    
+    void timedTest() {
+        long start = System.currentTimeMillis();
+        test();
+        long end = System.currentTimeMillis();
+        System.out.println((end - start) + " milli seconds for 
'"+this.getClass().getSimpleName()+"' loop");
+    }
+    
+    public static void main(String[] args) {
+        try {
+            System.out.println("prepare boxes for test");
+
+            for (int i = 0; i < num; i++) {
+                (new Box()).assignToParent(box, i);
+            }
+
+            System.out.println("start tests");
+            
+            new IntLoopStandard().timedTest();
+            new IntLoopCompareToZero().timedTest();
+            new TreeSizeLoopInline().timedTest();
+            new TreeSizeLoopSizeToZero().timedTest();
+            new TreeSizeLoopZeroToSize().timedTest();
+            
+        } catch (JSExn e) {
+            Log.uWarn(Box.class, "Caught JS Exception in LoopTest");
+            Log.uWarn(Box.class, e);
+        }
+    }
+}
+
+class IntLoopStandard extends TimedTest {
+    String getName() { return "standard int loop"; }
+    IntLoopStandard() { }
+    void test() {
+        for (int j = 0; j < 1000; j++) {
+            for (int i = 0; i < num; i++) {
+                if (i == num)
+                    System.out.println("never happens");
+            }
+        }
+    }
+}
+
+class IntLoopCompareToZero extends TimedTest {
+    String getName() { return "standard int loop"; }
+    IntLoopCompareToZero() { }
+    void test() {
+        for (int j = 0; j < 1000; j++) {
+            for (int i = 0; i < num; i++) {
+                if (i == num)
+                    System.out.println("never happens");
+            }
+        }
+    }
+}
+
+class TreeSizeLoopInline extends TimedTest {
+    String name = "treeSize() loop";
+    TreeSizeLoopInline() { }
+    void test() {
+        for (int j = 0; j < 1000; j++) {
+            for (int i = 0; i < box.treeSize(); i++) {
+                if (i-1 == num)
+                    System.out.println("never happens");
+            }
+        }
+    }
+}
+
+class TreeSizeLoopZeroToSize extends TimedTest {
+    String name = "treeSize() loop 2";
+    TreeSizeLoopZeroToSize() { }
+    void test() {
+        for (int j = 1000; j > 0; j--) {
+            int s = box.treeSize();
+            for (int i = 0; i < s; i++) {
+                if (i-1 == num)
+                    System.out.println("never happens");
+            }
+        }
+    }
+}
+
+class TreeSizeLoopSizeToZero extends TimedTest {
+    String name = "treeSize() loop 3";
+    TreeSizeLoopSizeToZero() { }
+    void test() {
+        for (int j = 1000; j > 0; j--) {
+            int s = box.treeSize();
+            for (int i = s; 0 < i; i--) {
+                if (i-1 == num)
+                    System.out.println("never happens");
+            }
+        }
+    }
+}


Property changes on: 
trunk/core/org.vexi.core/src_dev/org/vexi/core/TimedTest.java
___________________________________________________________________
Added: svn:mime-type
   + text/plain


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to