性能测试程序
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -12,4 +12,6 @@ logs
|
|||||||
results
|
results
|
||||||
|
|
||||||
node_modules
|
node_modules
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
|
|
||||||
|
benchmark/result*.html
|
||||||
@@ -35,6 +35,13 @@ console.log(xss('<a href="javascript:ooxx">abc</a>', function (tag, attr, value)
|
|||||||
**npm test**
|
**npm test**
|
||||||
|
|
||||||
|
|
||||||
|
## 性能
|
||||||
|
|
||||||
|
解析速度为**6.26MB/s**,而另外一个**validator**模块的xss()函数速度仅为**2.82MB/s**。
|
||||||
|
|
||||||
|
测试代码参考**benchmark**目录
|
||||||
|
|
||||||
|
|
||||||
## 授权协议
|
## 授权协议
|
||||||
|
|
||||||
基于MIT协议发布:
|
基于MIT协议发布:
|
||||||
|
|||||||
1471
benchmark/file.html
Normal file
1471
benchmark/file.html
Normal file
File diff suppressed because it is too large
Load Diff
24
benchmark/index.js
Normal file
24
benchmark/index.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* 性能测试
|
||||||
|
*/
|
||||||
|
|
||||||
|
var xss = require('../');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
|
||||||
|
var html = fs.readFileSync(__dirname + '/file.html', 'utf8');
|
||||||
|
|
||||||
|
|
||||||
|
var timeStart = Date.now();
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
var ret = xss(html);
|
||||||
|
}
|
||||||
|
var timeEnd = Date.now();
|
||||||
|
|
||||||
|
|
||||||
|
//console.log(ret);
|
||||||
|
fs.writeFileSync(__dirname + '/result.html', ret);
|
||||||
|
|
||||||
|
var spent = timeEnd - timeStart;
|
||||||
|
var speed = (((html.length * i) / spent * 1000) / 1024 / 1024).toFixed(2);
|
||||||
|
console.log('spent ' + spent + 'ms, ' + speed + 'MB/s');
|
||||||
24
benchmark/vs_validator.js
Normal file
24
benchmark/vs_validator.js
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* 性能测试 validator模块
|
||||||
|
*/
|
||||||
|
|
||||||
|
var sanitize = require('validator').sanitize;
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
|
||||||
|
var html = fs.readFileSync(__dirname + '/file.html', 'utf8');
|
||||||
|
|
||||||
|
|
||||||
|
var timeStart = Date.now();
|
||||||
|
for (var i = 0; i < 1000; i++) {
|
||||||
|
var ret = sanitize(html).xss();
|
||||||
|
}
|
||||||
|
var timeEnd = Date.now();
|
||||||
|
|
||||||
|
|
||||||
|
//console.log(ret);
|
||||||
|
fs.writeFileSync(__dirname + '/result_validator.html', ret);
|
||||||
|
|
||||||
|
var spent = timeEnd - timeStart;
|
||||||
|
var speed = (((html.length * i) / spent * 1000) / 1024 / 1024).toFixed(2);
|
||||||
|
console.log('spent ' + spent + 'ms, ' + speed + 'MB/s');
|
||||||
Reference in New Issue
Block a user