403Webshell
Server IP : 62.60.133.156  /  Your IP : 216.73.217.51
Web Server : LiteSpeed
System : Linux linux24.centraldnserver.com 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
User : mimradmin ( 1166)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : OFF |  Pkexec : OFF
Directory :  /opt/imunify360-webshield/lualib/resty/template/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /opt/imunify360-webshield/lualib/resty/template/microbenchmark.lua
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
}

Youez - 2016 - github.com/yon3zu