[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: microbenchmark.lua
File is not writable. Editing disabled.
local template = require "resty.template" local ok, new_tab = pcall(require, "table.new") if not ok then new_tab = function() return {} end end local function run(iterations) local gc, total, print, parse, compile, clock, format = collectgarbage, 0, ngx and ngx.say or print, template.parse, template.compile, os.clock, string.format iterations = iterations or 1000 local view = [[ <ul> {% for _, v in ipairs(context) do %} <li>{{v}}</li> {% end %} </ul>]] print(format("Running %d iterations in each test", iterations)) gc() gc() local x = clock() for _ = 1, iterations do parse(view, true) end local z = clock() - x print(format(" Parsing Time: %.6f", z)) total = total + z gc() gc() x = clock() for _ = 1, iterations do compile(view, nil, true) template.cache = {} end z = clock() - x print(format("Compilation Time: %.6f (template)", z)) total = total + z compile(view, nil, true) gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true) end z = clock() - x print(format("Compilation Time: %.6f (template, cached)", z)) total = total + z local context = { "Emma", "James", "Nicholas", "Mary" } template.cache = {} gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true)(context) template.cache = {} end z = clock() - x print(format(" Execution Time: %.6f (same template)", z)) total = total + z template.cache = {} compile(view, 1, true) gc() gc() x = clock() for _ = 1, iterations do compile(view, 1, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (same template, cached)", z)) total = total + z template.cache = {} local views = new_tab(iterations, 0) for i = 1, iterations do views[i] = "<h1>Iteration " .. i .. "</h1>\n" .. view end gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (different template)", z)) total = total + z gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(context) end z = clock() - x print(format(" Execution Time: %.6f (different template, cached)", z)) total = total + z local contexts = new_tab(iterations, 0) for i = 1, iterations do contexts[i] = { "Emma", "James", "Nicholas", "Mary" } end template.cache = {} gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(contexts[i]) end z = clock() - x print(format(" Execution Time: %.6f (different template, different context)", z)) total = total + z gc() gc() x = clock() for i = 1, iterations do compile(views[i], i, true)(contexts[i]) end z = clock() - x print(format(" Execution Time: %.6f (different template, different context, cached)", z)) total = total + z print(format(" Total Time: %.6f", total)) end return { run = run }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 691.32 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A