refactor(es6): benchmark directory

This commit is contained in:
EugeneHlushko 2017-12-27 16:54:59 +02:00
parent 8988dc8fed
commit 9a185e9d34
6 changed files with 64 additions and 66 deletions

View File

@ -1,11 +1,11 @@
var path = require("path");
var fs = require("fs");
var Benchmark = require("benchmark");
var webpack = require("../");
var fixtures = path.join(__dirname, "fixtures");
var outputPath = path.join(__dirname, "js");
const path = require("path");
const fs = require("fs");
const Benchmark = require("benchmark");
const webpack = require("../");
const fixtures = path.join(__dirname, "fixtures");
const outputPath = path.join(__dirname, "js");
var benchmarkOptions = {
const benchmarkOptions = {
defer: true,
onCycle: function() {
process.stderr.write(".");
@ -15,7 +15,7 @@ var benchmarkOptions = {
function runTimes(compiler, times, deferred) {
fs.writeFileSync(path.join(fixtures, "0.js"), "module.exports = " + Math.random(), "utf-8");
compiler.run(function(err, stats) {
compiler.run((err, stats) => {
if(err) throw err;
if(times === 1)
deferred.resolve();
@ -24,10 +24,10 @@ function runTimes(compiler, times, deferred) {
});
}
var tests = {
const tests = {
"normal build": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".js",
@ -35,7 +35,7 @@ var tests = {
path: outputPath,
filename: "bundle.js"
}
}, function(err, stats) {
}, (err, stats) => {
if(err) throw err;
deferred.resolve();
});
@ -43,7 +43,7 @@ var tests = {
],
"eval dev build": [
[0, 1, 2, 5, 10, 15],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".big.js",
@ -52,7 +52,7 @@ var tests = {
filename: "bundle.js"
},
devtool: "eval"
}, function(err, stats) {
}, (err, stats) => {
if(err) throw err;
deferred.resolve();
})
@ -60,7 +60,7 @@ var tests = {
],
"sourcemap build": [
[0, 1, 2, 5, 10, 15],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".big.js",
@ -69,7 +69,7 @@ var tests = {
filename: "bundle.js"
},
devtool: "source-map"
}, function(err, stats) {
}, (err, stats) => {
if(err) throw err;
deferred.resolve();
})
@ -77,7 +77,7 @@ var tests = {
],
"cheap sourcemap build": [
[0, 1, 2, 5, 10, 15],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".big.js",
@ -94,7 +94,7 @@ var tests = {
],
"build w/ chunks": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".async.js",
@ -110,7 +110,7 @@ var tests = {
],
"build w/ chunks": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
webpack({
context: fixtures,
entry: "./" + size + ".async.js",
@ -126,7 +126,7 @@ var tests = {
],
"incremental": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
var compiler = webpack({
cache: true,
context: fixtures,
@ -141,7 +141,7 @@ var tests = {
],
"incremental cheap sourcemap": [
[1, 2, 3, 4, 5, 6],
function(size, deferred) {
(size, deferred) => {
var compiler = webpack({
cache: true,
context: fixtures,
@ -157,7 +157,7 @@ var tests = {
],
"incremental2": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
var compiler = webpack({
cache: true,
context: fixtures,
@ -172,7 +172,7 @@ var tests = {
],
"incremental4": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
var compiler = webpack({
cache: true,
context: fixtures,
@ -187,7 +187,7 @@ var tests = {
],
"incremental16": [
[0, 1, 5, 10, 50, 100, 200],
function(size, deferred) {
(size, deferred) => {
var compiler = webpack({
cache: true,
context: fixtures,
@ -202,24 +202,21 @@ var tests = {
],
};
var suite = new Benchmark.Suite;
const suite = new Benchmark.Suite;
Object.keys(tests).filter(function(name) {
if(process.argv.length > 2)
return name.indexOf(process.argv[2]) >= 0;
return true;
}).forEach(function(name) {
var test = tests[name];
test[0].forEach(function(size) {
suite.add(name + " " + size, function(deferred) {
test[1](size, deferred);
}, benchmarkOptions);
Object.keys(tests).filter((name) => (process.argv.length > 2) ? name.indexOf(process.argv[2]) >= 0 : true)
.forEach((name) => {
const test = tests[name];
test[0].forEach((size) => {
suite.add(name + " " + size, (deferred) => {
test[1](size, deferred);
}, benchmarkOptions);
});
});
});
suite.on("cycle", function(event) {
suite.on("cycle", (event) => {
process.stderr.write("\n");
var b = event.target;
const b = event.target;
console.log(b.name + "\t" + Math.floor(1000 * (b.stats.mean - b.stats.moe)) + "\t" + Math.floor(1000 * (b.stats.mean + b.stats.moe)));
});

View File

@ -17,6 +17,6 @@ webpack({
new webpack.IgnorePlugin(/^(fsevents|uglify-js)$/),
new webpack.NormalModuleReplacementPlugin(/^.\/loadLoader$/, path.resolve(__dirname, "./createBenchmark/loadLoader"))
]
}, function(err, stats) {
}, (err, stats) => {
console.log(stats.toString());
});

View File

@ -1,3 +1,3 @@
module.exports = (loader, callback) => {
module.exports = (loader, callback) => {
callback(new Error("Loaders are not supported"));
}

View File

@ -1,14 +1,14 @@
var path = require("path");
var fs = require("fs");
const path = require("path");
const fs = require("fs");
var fixtures = path.join(__dirname, "fixtures");
const fixtures = path.join(__dirname, "fixtures");
try {
fs.mkdirSync(fixtures);
} catch(e) {}
for(var i = 0; i < 10000; i++) {
var source = [];
for(let i = 0; i < 10000; i++) {
const source = [];
if(i > 8)
source.push("require(" + JSON.stringify("./" + (i / 8 | 0) + ".js") + ");");
if(i > 4)
@ -21,8 +21,8 @@ for(var i = 0; i < 10000; i++) {
fs.writeFileSync(path.join(fixtures, i + ".js"), source.join("\n"), "utf-8");
}
for(var i = 0; i < 10000; i++) {
var source = [];
for(let i = 0; i < 10000; i++) {
const source = [];
source.push("require.ensure([], function(require) {");
if(i > 8)
source.push("require(" + JSON.stringify("./" + (i / 8 | 0) + ".async.js") + ");");
@ -37,8 +37,8 @@ for(var i = 0; i < 10000; i++) {
fs.writeFileSync(path.join(fixtures, i + ".async.js"), source.join("\n"), "utf-8");
}
for(var i = 0; i < 100; i++) {
var source = [];
for(let i = 0; i < 100; i++) {
const source = [];
if(i > 8)
source.push("require(" + JSON.stringify("./" + (i / 8 | 0) + ".big.js") + ");");
if(i > 4)
@ -47,7 +47,7 @@ for(var i = 0; i < 100; i++) {
source.push("require(" + JSON.stringify("./" + (i / 2 | 0) + ".big.js") + ");");
if(i > 0)
source.push("require(" + JSON.stringify("./" + (i - 1) + ".big.js") + ");");
for(var j = 0; j < 300; j++)
for(let j = 0; j < 300; j++)
source.push("if(Math.random())hello.world();test.a.b.c.d();x(1,2,3,4);var a,b,c,d,e,f;");
source.push("module.exports = " + i + ";");
fs.writeFileSync(path.join(fixtures, i + ".big.js"), source.join("\n"), "utf-8");

View File

@ -1,25 +1,26 @@
var path = require("path");
var fs = require("fs");
const path = require("path");
const fs = require("fs");
var fixtures = path.join(__dirname, "fixtures");
const fixtures = path.join(__dirname, "fixtures");
try {
fs.mkdirSync(fixtures);
} catch(e) {}
function genModule(prefix, depth, asyncDepth, multiplex, r, circular) {
var source = [];
var isAsync = depth >= asyncDepth;
const source = [];
const isAsync = depth >= asyncDepth;
if(!isAsync)
circular.push(path.resolve(fixtures, prefix + "/index.js"));
source.push("(function() {");
var m = (r % multiplex) + 1;
var sum = 1;
const m = (r % multiplex) + 1;
let sum = 1;
let item;
try {
fs.mkdirSync(path.resolve(fixtures, prefix));
} catch(e) {}
if(depth > 0) {
for(var i = 0; i < m; i++) {
for(let i = 0; i < m; i++) {
sum += genModule(prefix + "/" + i, depth - 1, asyncDepth, multiplex, (r + i + depth) * m + i + depth, circular);
source.push("require(" + JSON.stringify("./" + i) + ");");
if(i === 0) {
@ -27,7 +28,7 @@ function genModule(prefix, depth, asyncDepth, multiplex, r, circular) {
source.push("}); require.ensure([], function() {");
}
}
var item = circular[r % circular.length];
item = circular[r % circular.length];
}
source.push("}, " + JSON.stringify(prefix) + ");");
if(item)
@ -37,20 +38,20 @@ function genModule(prefix, depth, asyncDepth, multiplex, r, circular) {
return sum;
}
for(var i = 2; i < 14; i++) {
var count = genModule("tree-" + i, 6, 100, i, 0, []);
for(let i = 2; i < 14; i++) {
const count = genModule("tree-" + i, 6, 100, i, 0, []);
console.log("generated tree", i, count);
}
for(i = 2; i < 14; i++) {
count = genModule("async-tree-" + i, 6, 1, i, 0, []);
for(let i = 2; i < 14; i++) {
const count = genModule("async-tree-" + i, 6, 1, i, 0, []);
console.log("generated async tree", i, count);
}
var a = genModule("module-async", 7, 1, 3, 2, []);
const a = genModule("module-async", 7, 1, 3, 2, []);
var b = genModule("module-big-async", 5, 2, 9, 2, []);
const b = genModule("module-big-async", 5, 2, 9, 2, []);
var c = genModule("module-broad-async", 3, 3, 20, 10, []);
const c = genModule("module-broad-async", 3, 3, 20, 10, []);
console.log("generated modules", a, b, c);

View File

@ -32,7 +32,7 @@ function e() {}
function f() {}
`
for(var i = 0; i < 2; i++) {
for(let i = 0; i < 2; i++) {
avgJs += `(function() {${avgJs}}());`;
}