File: bench.lua

package info (click to toggle)
tarantool 2.6.0-1.4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 85,412 kB
  • sloc: ansic: 513,775; cpp: 69,493; sh: 25,650; python: 19,190; perl: 14,973; makefile: 4,178; yacc: 1,329; sql: 1,074; pascal: 620; ruby: 190; awk: 18; lisp: 7
file content (29 lines) | stat: -rw-r--r-- 980 bytes parent folder | download | duplicates (3)
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
local ITERS = 1000
local TESTS = {
  serpent = function() return require("serpent").dump end,
  penlight = function() return require("pl.pretty").write end,
  metalua = function() require("serialize"); return (_G or _ENV).serialize end,
  nucleo = function()
    import = require("lua-nucleo.import_as_require").import
    return require("lua-nucleo.tserialize").tserialize end
}

-- test data
local b = {text="ha'ns", ['co\nl or']='bl"ue', str="\"\n'\\\001"}
local a = {
  x=1, y=2, z=3,
  ['function'] = b, -- keyword as a key
  list={'a',nil,nil, -- shared reference, embedded nils
        [9]='i','f',[5]='g',[7]={}}, -- empty table
  ['label 2'] = b, -- shared reference
  [math.huge] = -math.huge, -- huge as number value
}
a.c = a -- self-reference
-- test data

for test, func in pairs(TESTS) do
  local start, str = os.clock()
  local serializer = func()
  for _ = 1, ITERS do str = serializer(a) end
  print(("%s (%d): %ss"):format(test, ITERS, os.clock() - start))
end