Merge pull request #453 from brendandahl/benchmarks

Add benchmarks for the various method type invocations.
This commit is contained in:
Marco 2014-10-15 18:29:19 -07:00
Родитель a4f7399cc5 9c660a604b
Коммит c2ee871860
5 изменённых файлов: 62 добавлений и 29 удалений

Просмотреть файл

@ -3,6 +3,12 @@
'use strict';
if (scriptArgs.length !== 1) {
print("error: One main class name must be specified.");
print("usage: jsshell <main class name>");
quit(1);
}
var window = {
setZeroTimeout: function(callback) {
callback();
@ -68,6 +74,6 @@ print("INITIALIZATION TIME: " + (dateNow() - start));
start = dateNow();
jvm.startIsolate0("SimpleClass", urlParams.args);
jvm.startIsolate0(scriptArgs[0], urlParams.args);
print("RUNNING TIME: " + (dateNow() - start));

Просмотреть файл

@ -1,28 +0,0 @@
interface TestInterface {
public void asd();
}
class TestClass implements TestInterface {
public void asd() {
int c = 5;
c++;
}
}
class SimpleClass {
public void asd() {
int c = 5;
c++;
}
public static void main(String[] args) {
System.out.println("I'm hungry");
TestInterface a = new TestClass();
SimpleClass b = new SimpleClass();
for (int i = 0; i < 999999; i++) {
a.asd();
}
}
}

Просмотреть файл

@ -0,0 +1,20 @@
package benchmark;
interface IFace {
public int method();
}
class IFaceImpl implements IFace {
public int method() {
return 6;
}
}
class InvokeInterface {
public static void main(String[] args) {
IFace foo = new IFaceImpl();
for (int i = 0; i < 100000; i++) {
foo.method();
}
}
}

Просмотреть файл

@ -0,0 +1,13 @@
package benchmark;
class InvokeStatic {
public static int staticus() {
return 5;
}
public static void main(String[] args) {
for (int i = 0; i < 100000; i++) {
staticus();
}
}
}

Просмотреть файл

@ -0,0 +1,22 @@
package benchmark;
class BaseClass {
public int method() {
return 5;
}
}
class NextClass extends BaseClass {
public int method() {
return 6;
}
}
class InvokeVirtual {
public static void main(String[] args) {
NextClass foo = new NextClass();
for (int i = 0; i < 100000; i++) {
foo.method();
}
}
}