Skip to content

Commit

Permalink
[benchs] add access benchmarks
Browse files Browse the repository at this point in the history
  • Loading branch information
Simn committed Sep 29, 2018
1 parent e76d526 commit 44eedc5
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 2 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -118,3 +118,4 @@ dev-display.hxml
tests/sourcemaps/bin
/*_plugin.ml
tests/benchs/export/
tests/benchs/dump/
2 changes: 1 addition & 1 deletion tests/benchs/build.hxml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
-cp src
-main Main
-D test=Calls
-D test=Access
101 changes: 101 additions & 0 deletions tests/benchs/src/cases/Access.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package cases;

import hxbenchmark.Suite;

typedef Def = {
var i : Int;
var f : Float;
@:optional var oi : Int;
@:optional var of : Float;
var ai : Array<Int>;
var af : Array<Float>;
var str : String;
}
typedef Obj = {>Def,
var sub : Def;
}

class Access extends TestCase {
@:analyzer(ignore)
function measureReal() {
var o = getObj();
var suite = new Suite("real");
suite.add(".Int", o.i);
suite.add(".Float", o.f);
suite.add("Int[]", o.ai[0]);
suite.add("Float[]", o.af[0]);
suite.add(".Int?", o.oi);
suite.add(".Float?", o.of);
suite.add(".String.length", o.str.length);
suite.add(".sub.Int", o.sub.i);
suite.add(".sub.Float", o.sub.f);
suite.add(".sub.Int[]", o.sub.ai[0]);
suite.add(".sub.Float[]", o.sub.af[0]);
suite.add(".sub.Int?", o.sub.oi);
suite.add(".sub.Float?", o.sub.of);
suite.add(".sub.String.length", o.sub.str.length);
return suite.run();
}

@:analyzer(ignore)
function measureJson() {
var o:Obj = haxe.Json.parse(haxe.Json.stringify(getObj()));
var suite = new Suite("json");
suite.add(".Int", o.i);
suite.add(".Float", o.f);
suite.add("Int[]", o.ai[0]);
suite.add("Float[]", o.af[0]);
suite.add(".Int?", o.oi);
suite.add(".Float?", o.of);
suite.add(".String.length", o.str.length);
suite.add(".sub.Int", o.sub.i);
suite.add(".sub.Float", o.sub.f);
suite.add(".sub.Int[]", o.sub.ai[0]);
suite.add(".sub.Float[]", o.sub.af[0]);
suite.add(".sub.Int?", o.sub.oi);
suite.add(".sub.Float?", o.sub.of);
suite.add(".sub.String.length", o.sub.str.length);
return suite.run();
}

function measureDynamic() {
var o:Dynamic = getObj();
var suite = new Suite("dynamic");
suite.add(".Int", o.i);
suite.add(".Float", o.f);
suite.add("Int[]", o.ai[0]);
suite.add("Float[]", o.af[0]);
suite.add(".Int?", o.oi);
suite.add(".Float?", o.of);
suite.add(".String.length", o.str.length);
suite.add(".sub.Int", o.sub.i);
suite.add(".sub.Float", o.sub.f);
suite.add(".sub.Int[]", o.sub.ai[0]);
suite.add(".sub.Float[]", o.sub.af[0]);
suite.add(".sub.Int?", o.sub.oi);
suite.add(".sub.Float?", o.sub.of);
suite.add(".sub.String.length", o.sub.str.length);
return suite.run();
}

static function getObj():Obj {
return {
i : 1,
f : 1.0,
oi : 1,
of : 1.0,
ai : [1],
af : [1.0],
str : "1",
sub : {
i : 1,
f : 1.0,
oi : 1,
of : 1.0,
ai : [1],
af : [1.0],
str : "1",
}
};
}
}
1 change: 0 additions & 1 deletion tests/benchs/src/hxbenchmark/ResultPrinter.hx
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class ResultPrinter {
}
}
var best = result.cases[0].numSamples;
trace(best);
var buf = new StringBuf();
buf.add(" Suite: " + result.name + "\n");
for (caseResult in result.cases) {
Expand Down

0 comments on commit 44eedc5

Please sign in to comment.