summaryrefslogtreecommitdiff
path: root/tests/modules/string
diff options
context:
space:
mode:
authorruki <[email protected]>2020-03-18 22:51:36 +0800
committerruki <[email protected]>2020-03-18 11:09:37 +0800
commitc30c785e9d56d049c0b5f6a6657b93b96a1b8ea7 (patch)
tree1f4ae3f716537cf778ef5e2d0bb8636d95f985d2 /tests/modules/string
parenta6c0dcf25be88e82d68edd8ae9dba529e31ade0a (diff)
add lastof_perf test
Diffstat (limited to 'tests/modules/string')
-rw-r--r--tests/modules/string/lastof_perf.lua38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/modules/string/lastof_perf.lua b/tests/modules/string/lastof_perf.lua
new file mode 100644
index 000000000..eb0c40e76
--- /dev/null
+++ b/tests/modules/string/lastof_perf.lua
@@ -0,0 +1,38 @@
+
+function _lastof_perf(str, pattern, opt)
+ local plain = opt and opt.plain
+ local dt = os.mclock()
+ for i = 0, 1000000 do
+ str:lastof(pattern, plain)
+ end
+ dt = os.mclock() - dt
+ print("lastof(%s .., %s, %s): %d ms", str:sub(1, 16), pattern, string.serialize(opt or {}, {strip = true, indent = false}), dt)
+end
+
+function main()
+
+ local str = "shortstr: 123abc123123xyz[123]+abc123"
+ _lastof_perf(str, "1")
+ _lastof_perf(str, "123")
+ _lastof_perf(str, "[123]+")
+ print("")
+
+ _lastof_perf(str, "1", {plain = true})
+ _lastof_perf(str, "123", {plain = true})
+ _lastof_perf(str, "[123]+", {plain = true})
+ print("")
+
+ str = "longstr: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ for i = 0, 100 do
+ str = str .. "[123]+"
+ end
+ _lastof_perf(str, "1")
+ _lastof_perf(str, "123")
+ _lastof_perf(str, "[123]+")
+ print("")
+
+ _lastof_perf(str, "1", {plain = true})
+ _lastof_perf(str, "123", {plain = true})
+ _lastof_perf(str, "[123]+", {plain = true})
+ print("")
+end