diff options
Diffstat (limited to 'Data/BuiltIn/Libraries/middleclass/performance')
-rw-r--r-- | Data/BuiltIn/Libraries/middleclass/performance/run.lua | 43 | ||||
-rw-r--r-- | Data/BuiltIn/Libraries/middleclass/performance/time.lua | 13 |
2 files changed, 56 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) diff --git a/Data/BuiltIn/Libraries/middleclass/performance/time.lua b/Data/BuiltIn/Libraries/middleclass/performance/time.lua new file mode 100644 index 0000000..dd02455 --- /dev/null +++ b/Data/BuiltIn/Libraries/middleclass/performance/time.lua @@ -0,0 +1,13 @@ +return function(title, f) + + collectgarbage() + + local startTime = os.clock() + + for i=0,10000 do f() end + + local endTime = os.clock() + + print( title, endTime - startTime ) + +end |