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