Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function run(entry) {
var start = now();
entry.action();
var ms = now() - start;
var perCall = (ms / n * 1000).toFixed(1);
var perCall = (ms * 1e6 / n).toFixed(1);
return {
ms: ms,
line: pad(ms.toFixed(2), 9) + " ms [" + perCall + " ns/call] " + entry.name,
Expand Down Expand Up @@ -85,6 +85,24 @@ function buildSuite() {
var cb = new org.nativescript.BenchmarkCallback({ onCallback: function () {} });
for (var i = 0; i < 2000; i++) Benchmarks.invokeCallback(cb);
} },

{ name: "Instance add(a, b)", action: function () { for (var i = 0; i < 1e6; i++) b.add(3, 2); } },
{ name: "Pass and return non-ASCII string", action: function () { for (var i = 0; i < 1e6; i++) Benchmarks.passAndReturnString("h\u00e9llo w\u00f6rld"); } },
{ name: "Pass and return 1KB string", iterations: 1e5, action: function () { var s = new Array(1025).join("x"); for (var i = 0; i < 1e5; i++) Benchmarks.passAndReturnString(s); } },
{ name: "Return a Char", action: function () { for (var i = 0; i < 1e6; i++) void Benchmarks.returnChar(); } },
{ name: "Return this", action: function () { for (var i = 0; i < 1e6; i++) void b.self(); } },
{ name: "Return a new object", iterations: 1e5, action: function () { for (var i = 0; i < 1e5; i++) void Benchmarks.returnNewObject(); } },
{ name: "Call a method on a new object", iterations: 1e5, action: function () { for (var i = 0; i < 1e5; i++) Benchmarks.returnNewObject().getInt(); } },
{ name: "Pass a 16 Int Array", iterations: 1e5, action: function () { var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; for (var i = 0; i < 1e5; i++) Benchmarks.sumInts(a); } },
{ name: "Pass a 16 Double Array", iterations: 1e5, action: function () { var a = [1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5, 16.5]; for (var i = 0; i < 1e5; i++) Benchmarks.sumDoubles(a); } },
{ name: "Invoke int callback", iterations: 1e4, action: function () {
var cb = new org.nativescript.BenchmarkCallback({ onInts: function (x, y) { return x + y; } });
for (var i = 0; i < 1e4; i++) Benchmarks.invokeIntCallback(cb);
} },
{ name: "Invoke string callback", iterations: 1e4, action: function () {
var cb = new org.nativescript.BenchmarkCallback({ onString: function (value) {} });
for (var i = 0; i < 1e4; i++) Benchmarks.invokeStringCallback(cb);
} },
];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,8 @@
// through a Java interface (see Benchmarks.invokeCallback).
public interface BenchmarkCallback {
void onCallback();

int onInts(int a, int b);

void onString(String value);
}
Original file line number Diff line number Diff line change
Expand Up @@ -82,4 +82,48 @@ public static void passDateObject(java.util.Date date) {}
public static void invokeCallback(BenchmarkCallback callback) {
callback.onCallback();
}

public int add(int a, int b) {
return a + b;
}

public int getInt() {
return IntFieldInstance;
}

public Benchmarks self() {
return this;
}

public static Benchmarks returnNewObject() {
return new Benchmarks();
}

public static char returnChar() {
return '\u00e9';
}

public static int sumInts(int[] values) {
int sum = 0;
for (int value : values) {
sum += value;
}
return sum;
}

public static double sumDoubles(double[] values) {
double sum = 0;
for (double value : values) {
sum += value;
}
return sum;
}

public static int invokeIntCallback(BenchmarkCallback callback) {
return callback.onInts(1, 2);
}

public static void invokeStringCallback(BenchmarkCallback callback) {
callback.onString("hello");
}
}
Loading