Browse Source

[benchs] adjust some flags for fairer comparisons

Simon Krajewski 7 years ago
parent
commit
72744f4233

+ 4 - 1
tests/benchs/build.hxml

@@ -1,3 +1,6 @@
 -cp src
 -main Main
--D test=Access
+-D test=StringIterator
+-D analyzer-optimize
+-D analyzer-no-purity-inference
+-D dump=pretty

+ 1 - 3
tests/benchs/src/cases/Access.hx

@@ -15,8 +15,8 @@ typedef Obj = {>Def,
 	var sub : Def;
 }
 
+@:analyzer(ignore)
 class Access extends TestCase {
-	@:analyzer(ignore)
 	function measureReal() {
 		var o = getObj();
 		var suite = new Suite("real");
@@ -37,7 +37,6 @@ class Access extends TestCase {
 		return suite.run();
 	}
 
-	@:analyzer(ignore)
 	function measureJson() {
 		var o = getObj();
 		var o = haxe.Json.stringify(o);
@@ -60,7 +59,6 @@ class Access extends TestCase {
 		return suite.run();
 	}
 
-	@:analyzer(ignore)
 	function measureDynamic() {
 		var o:Dynamic = getObj();
 		var suite = new Suite("dynamic");

+ 32 - 2
tests/benchs/src/cases/StringIterator.hx

@@ -4,8 +4,6 @@ import hxbenchmark.Suite;
 import haxe.iterators.StringKeyValueIteratorUnicode;
 using StringTools;
 
-
-@:analyzer(no_local_dce)
 class StringIterator extends TestCase {
 	function measureL100() {
 		var s = "".lpad("a", 100);
@@ -22,4 +20,36 @@ class StringIterator extends TestCase {
 		);
 		return suite.run();
 	}
+
+	function measureL1000() {
+		var s = "".lpad("a", 1000);
+		var suite = new Suite("length 1000");
+		suite.add("0...length + fastCodeAt",
+			for (key in 0...s.length) {
+				var value = s.fastCodeAt(key);
+			}
+		);
+		suite.add("StringKeyValueIteratorUnicode",
+			for (key => value in new StringKeyValueIteratorUnicode(s)) {
+
+			}
+		);
+		return suite.run();
+	}
+
+	function measureL10000() {
+		var s = "".lpad("a", 10000);
+		var suite = new Suite("length 10000");
+		suite.add("0...length + fastCodeAt",
+			for (key in 0...s.length) {
+				var value = s.fastCodeAt(key);
+			}
+		);
+		suite.add("StringKeyValueIteratorUnicode",
+			for (key => value in new StringKeyValueIteratorUnicode(s)) {
+
+			}
+		);
+		return suite.run();
+	}
 }