summaryrefslogtreecommitdiff
path: root/tests/modules/string/split_perf.lua
blob: d9ac1c4621b585780da6ea3cc7460cf340f1b49a (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

function _split_perf(str, delimiter, opt)
    local dt = os.mclock()
    for i = 0, 1000000 do
        str:split(delimiter, opt)
    end
    dt = os.mclock() - dt
    print("split(%s .., %s, %s): %d ms", str:sub(1, 16), delimiter, string.serialize(opt or {}, {strip = true, indent = false}), dt)
end

function main()

    local str = "shortstr: 123abc123123xyz[123]+abc123"
    _split_perf(str, "1")
    _split_perf(str, "123")
    _split_perf(str, "[123]+")
    print("")

    _split_perf(str, "1", {plain = true})
    _split_perf(str, "123", {plain = true})
    _split_perf(str, "[123]+", {plain = true})
    print("")

    str = "longstr: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    for i = 0, 100 do
        str = str .. "[123]+"
    end
    _split_perf(str, "1")
    _split_perf(str, "123")
    _split_perf(str, "[123]+")
    print("")

    _split_perf(str, "1", {plain = true})
    _split_perf(str, "123", {plain = true})
    _split_perf(str, "[123]+", {plain = true})
    print("")
end