summaryrefslogtreecommitdiff
path: root/Data/DefaultContent/Libraries/middleclass/performance/run.lua
blob: 8d8ba47f73229161eb9d3574b0e196d429c3939a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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)