summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/middleclass/performance/run.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/BuiltIn/Libraries/middleclass/performance/run.lua')
-rw-r--r--Data/BuiltIn/Libraries/middleclass/performance/run.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/middleclass/performance/run.lua b/Data/BuiltIn/Libraries/middleclass/performance/run.lua
new file mode 100644
index 0000000..8d8ba47
--- /dev/null
+++ b/Data/BuiltIn/Libraries/middleclass/performance/run.lua
@@ -0,0 +1,43 @@
+local class = require 'middleclass'
+
+time = require 'performance/time'
+
+time('class creation', function()
+ local A = class('A')
+end)
+
+local A = class('A')
+
+time('instance creation', function()
+ local a = A:new()
+end)
+
+function A:foo()
+ return 1
+end
+
+local a = A:new()
+
+time('instance method invocation', function()
+ a:foo()
+end)
+
+local B = class('B', A)
+
+local b = B:new()
+
+time('inherited method invocation', function()
+ b:foo()
+end)
+
+function A.static:bar()
+ return 2
+end
+
+time('class method invocation', function()
+ A:bar()
+end)
+
+time('inherited class method invocation', function()
+ B:bar()
+end)