File: performance.lua

package info (click to toggle)
lua-lgi 0.9.2-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,388 kB
  • sloc: ansic: 5,082; makefile: 169; sh: 31
file content (65 lines) | stat: -rw-r--r-- 1,833 bytes parent folder | download | duplicates (5)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
------------------------------------------------------------------------------
--
--  LGI Performance test module
--
--  Copyright (c) 2013 Pavel Holejsovsky
--  Licensed under the MIT license:
--  http://www.opensource.org/licenses/mit-license.php
--
------------------------------------------------------------------------------

local lgi = require("lgi")
local cairo = lgi.cairo
local Gtk = lgi.Gtk
local GLib = lgi.GLib

local width, height = 200, 200
local surf = cairo.ImageSurface('ARGB32', width, height)
local cr = cairo.Context(surf)
local w = Gtk.Window()
local cairo_move_to = cairo.Context.move_to

for _, test in ipairs {
   { 100000, function() cr:move_to(100, 100) end },
   { 100000, function() cairo.Context.move_to(cr, 100, 100) end },
   { 100000, function() cairo_move_to(cr, 100, 100) end },
   { 100000, function() cr.line_width = 1 end },
   { 100000, function() cr:set_line_width(1) end },
   { 10000, function() w:set_title('title') end },
   { 10000, function() Gtk.Window.set_title(w, 'title') end },
   { 10000, function() w.title = 'title' end },
} do
   local results = {}
   local timer = GLib.Timer()
   for i = 1, test[1] do
      test[2]()
   end
   timer:stop()
   io.write(string.format('%0.2f', timer:elapsed()))
   io.write('\t')
   io.flush()
end
print('\n')

--[[
*** 0.7.2:
1.43	0.82	0.09	1.46	1.40	4.27	1.00	4.85

*** Remove and inline _access_element
1.19	0.83	0.09	1.19	1.15	3.35	1.04	3.84

*** Add caching of methods into main type table or _cached subtable
0.65	0.10	0.10	0.93	0.62	1.62	0.03	2.78

*** Add support for automatic async_ invocation
0.65	0.11	0.10	0.97	0.64	1.72	0.03	2.88

*** 0.8.0: (On Lua5.2)
0.65	0.10	0.10	0.93	0.62	1.62	0.03	2.78

*** 0.9.0: (On Lua5.2)
0.65	0.09	0.09	0.96	0.63	1.76	0.02	2.94

*** 0.9.1: (On Lua5.3.2)
0.62	0.10	0.10	0.92	0.60	1.55	0.02	2.65
--]]