Add preprocessors benchmark

This commit is contained in:
Andrey Sitnik
2014-11-24 12:46:02 +03:00
parent 8301575acc
commit dce2f3e0d6
7 changed files with 94 additions and 3 deletions
+1
View File
@@ -2,6 +2,7 @@
*~
node_modules/
.bundle/
benchmark/results/
benchmark/cache/
+3
View File
@@ -0,0 +1,3 @@
source "https://rubygems.org"
gem 'sass'
+10
View File
@@ -0,0 +1,10 @@
GEM
remote: https://rubygems.org/
specs:
sass (3.4.8)
PLATFORMS
ruby
DEPENDENCIES
sass
+66
View File
@@ -0,0 +1,66 @@
var fs = require('fs');
var exec = require('child_process').exec;
var path = __dirname + '/cache/bootstrap.css';
var css = fs.readFileSync(path).toString();
css = css.replace(/\s+filter:[^;\}]+;?/g, '');
css = css.replace('/*# sourceMappingURL=bootstrap.css.map */', '');
var scss = __dirname + '/cache/bootstrap.scss';
fs.writeFileSync(scss, css);
var postcss = require('../build');
var stylus = require('stylus');
var sass = require('node-sass');
var less = require('less');
module.exports = {
name: 'Bootstrap',
maxTime: 15,
tests: [
{
name: 'PostCSS',
fn: function (done) {
return postcss().process(css, { map: false }).css;
}
},
{
name: 'Stylus',
defer: true,
fn: function (done) {
stylus.render(css, { filename: path }, function (err, css) {
if ( err ) throw err;
done.resolve();
});
}
},
{
name: 'Less',
defer: true,
fn: function (done) {
less.render(css, function (err, css) {
if ( err ) throw err;
done.resolve();
});
}
},
{
name: 'libsass',
fn: function () {
return sass.renderSync({ data: css });
}
},
{
name: 'Ruby Sass',
defer: true,
fn: function (done) {
var command = 'sass -C --sourcemap=none ' + scss;
exec('cd ' + __dirname + '; bundle exec ' + command,
function (error, stdout, stderr) {
if ( error ) throw stderr;
done.resolve();
});
}
}
]
};
+9 -1
View File
@@ -95,10 +95,18 @@ gulp.task('bench:bootstrap', function (done) {
});
});
gulp.task('bench:processors', ['build', 'bench:bootstrap'], function () {
var bench = require('gulp-bench');
var summary = require('gulp-bench-summary');
return gulp.src('./benchmark/processors.js', { read: false })
.pipe(bench())
.pipe(summary('PostCSS'));
});
gulp.task('bench', ['build', 'bench:bootstrap'], function () {
var bench = require('gulp-bench');
var summary = require('gulp-bench-summary');
return gulp.src('./benchmark/general.js', { read: false })
return gulp.src('./benchmark/parsers.js', { read: false })
.pipe(bench())
.pipe(summary('PostCSS'));
});
+5 -2
View File
@@ -12,7 +12,7 @@
"dependencies": {
"source-map": "~0.1.40",
"js-base64": "~2.1.5",
"6to5": "1.12.26"
"6to5": "1.13.11"
},
"devDependencies": {
"concat-with-sourcemaps": "0.1.6",
@@ -25,6 +25,7 @@
"gulp-mocha": "2.0.0",
"gulp-util": "3.0.1",
"gulp-6to5": "1.0.2",
"node-sass": "1.2.3",
"execSync": "1.0.2",
"fs-extra": "0.12.0",
"gonzales": "1.0.7",
@@ -34,9 +35,11 @@
"rework": "1.0.1",
"should": "4.3.0",
"mensch": "0.3.1",
"stylus": "0.49.3",
"mocha": "2.0.1",
"cssom": "0.3.0",
"gulp": "3.8.10"
"gulp": "3.8.10",
"less": "2.1.0"
},
"scripts": {
"test": "gulp"