UNPKG

1.16 kBJavaScriptView Raw
1//-
2//- Usage
3//- litejs bench [FILES..]
4//-
5//- Examples
6//- litejs bench test/bench/date.js
7//-
8
9var bench = require("../../test/bench")
10, path = require("path")
11
12exports.execute = execute
13
14function execute(argv, i) {
15 var file = process.argv[i]
16 , mod = file && require(path.join(process.cwd(), file))
17
18 if (mod) {
19 run(mod, execute.bind(null, argv, i + 1))
20 }
21}
22
23function run(mod, next) {
24 var i = 0
25 if (Array.isArray(mod)) {
26 loop()
27 } else {
28 var skip = []
29 , enabled = Object.keys(mod).reduce(function(map, name) {
30 if (name && name.charAt(0) !== "_") {
31 map[name] = mod[name]
32 } else {
33 skip.push(name)
34 }
35 return map
36 }, {})
37 console.log(
38 "---\nBench: %s%s\n---",
39 Object.keys(enabled).join(" vs "),
40 skip.length ? "\n Skip: " + skip.join(", ") : ""
41 )
42 bench(enabled, function(err, result) {
43 Object.keys(result).forEach(function(name) {
44 console.log(name + "\n " + result[name].text + " ops/s, " + result[name].rel)
45 })
46 if (typeof next === "function") {
47 next()
48 }
49 })
50 }
51 function loop() {
52 var cur = mod[i++]
53 if (cur) run(cur, loop)
54 else if (typeof next === "function") next()
55 }
56}
57