Skip to content

Commit 205ea59

Browse files
committed
little script to check virtual function call performance over non virtual function calls
1 parent b472915 commit 205ea59

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import System;
2+
3+
class Foo {
4+
public var counter = 0;
5+
function Bar() { ++counter; }
6+
}
7+
8+
class VirtualFoo {
9+
public var counter = 0;
10+
virtual function Bar() { ++counter; }
11+
}
12+
13+
class VirtualFoo2 extends VirtualFoo {
14+
override function Bar() {}
15+
}
16+
17+
function time(kind, block: function()) {
18+
var calls = 100000000;
19+
var start = DateTime.Now;
20+
for (var i=0; i<calls; ++i)
21+
block();
22+
var elapsed = DateTime.Now - start;
23+
print(calls + " " + kind + " in " + elapsed.TotalMilliseconds + "ms.");
24+
}
25+
26+
var foo = new Foo();
27+
var virtualFoo = new VirtualFoo();
28+
29+
for (var i = 0; i < 3; ++i) {
30+
time("non virtual calls", function() { foo.Bar(); });
31+
time("virtual calls", function() { virtualFoo.Bar(); });
32+
}
33+

0 commit comments

Comments
 (0)