run.fnl
Branches > main > a1efde1 > files / nvim / pack / plugins / opt / conjure / fnl / conjure-benchmark / run.fnl
(set package.path
(.. (vim.fn.getcwd)
"/lua/?.lua;"
(vim.fn.getcwd)
"/lua/?/init.lua;"
package.path))
(local core (require :conjure.nfnl.core))
(local default-iterations 1000)
(fn benchmark-task [{: name : task-fn : iterations : before-fn}]
(when before-fn
(before-fn))
(let [start (vim.uv.now)
iterations (or iterations default-iterations)]
(for [_i 1 iterations]
(task-fn))
(vim.uv.update_time)
(let [duration (/ (- (vim.uv.now) start) iterations)]
(print "##" name (.. "x" iterations) (.. "[" duration "ms]")))))
(fn benchmark-tasks [{: name : tasks}]
(print "#" name)
(core.run! benchmark-task tasks))
(benchmark-tasks (require "conjure-benchmark.bencode"))
(benchmark-tasks (require "conjure-benchmark.log"))