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
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn