1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | var bench = require("../../test/bench")
|
10 | , path = require("path")
|
11 |
|
12 | exports.execute = execute
|
13 |
|
14 | function 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 |
|
23 | function 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 |
|