都说Node的异步i/o有很大的优势,我也来看看Node是否确实在I/O异步的情况下能对服务器性能有一定提升。故我写了如下代码:
var fs = require('fs');
var sec = 0;
var interval = setInterval(function() {
sec++;
}, 1);
function f1() {
return new Promise(function(resolve, reject) {
fs.readFile("E:\\1.zip", function(data1) {
console.log("zip1 loaded:" + sec);
resolve();
})
})
}
function f2() {
return new Promise(function(s, j) {
fs.readFile("E:\\2.zip", function(data2) {
console.log("zip2 loaded:" + sec);
s();
})
});
}
console.log("异步I/O:")
Promise.all([f1(), f2()]).then(function() {
console.log("阻塞I/O:");
sec=0;
f1().then(function() {
return f2();
}).then(function() {
clearInterval(interval);
});
});
实际测试结果如下