kopia lustrzana https://github.com/c9/core
add function to measure event loop run times
rodzic
6490a22d8d
commit
86e03b7501
|
@ -0,0 +1,16 @@
|
|||
// module.exports = function (callback) {
|
||||
// var start = Date.now();
|
||||
// setImmediate(function () {
|
||||
// var took = Date.now() - start;
|
||||
// return callback(null, took);
|
||||
// }, 0);
|
||||
// };
|
||||
module.exports = function (callback) {
|
||||
var start = Date.now();
|
||||
// setInterval is handled after setImmediate and setTimeout handlers
|
||||
var interval = setTimeout(function () {
|
||||
clearInterval(interval);
|
||||
var took = Date.now() - start;
|
||||
return callback(null, took);
|
||||
}, 0);
|
||||
};
|
|
@ -0,0 +1,65 @@
|
|||
"use strict";
|
||||
"use server";
|
||||
|
||||
var assert = require("assert");
|
||||
var blocked = require("./blocked");
|
||||
|
||||
module.exports = {
|
||||
|
||||
"test normal run should return low blocked time": function(next) {
|
||||
blocked(function(err, time) {
|
||||
assert(!err, err);
|
||||
assert(time < 10);
|
||||
next();
|
||||
});
|
||||
},
|
||||
"test busy loop should report high blocked time": function(next) {
|
||||
blocked(function(err, time) {
|
||||
assert(!err, err);
|
||||
assert(time >= 100);
|
||||
next();
|
||||
});
|
||||
|
||||
var start = Date.now();
|
||||
while (Date.now() - start < 100) {}
|
||||
},
|
||||
"test busy loop in setTimeout should report high blocked time": function(next) {
|
||||
setTimeout(function() {
|
||||
var start = Date.now();
|
||||
while (Date.now() - start < 100) {}
|
||||
}, 0);
|
||||
|
||||
blocked(function(err, time) {
|
||||
assert(!err, err);
|
||||
assert(time >= 100);
|
||||
next();
|
||||
});
|
||||
},
|
||||
"test busy loop in setInterval should report high blocked time": function(next) {
|
||||
var interval = setInterval(function() {
|
||||
clearInterval(interval);
|
||||
var start = Date.now();
|
||||
while (Date.now() - start < 100) {}
|
||||
});
|
||||
|
||||
blocked(function(err, time) {
|
||||
assert(!err, err);
|
||||
assert(time >= 100);
|
||||
next();
|
||||
});
|
||||
},
|
||||
"test busy loop in setImmediate should report high blocked time": function(next) {
|
||||
setImmediate(function() {
|
||||
var start = Date.now();
|
||||
while (Date.now() - start < 100) {}
|
||||
});
|
||||
|
||||
blocked(function(err, time) {
|
||||
assert(!err, err);
|
||||
assert(time >= 100);
|
||||
next();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
!module.parent && require("asyncjs").test.testcase(module.exports).exec();
|
Ładowanie…
Reference in New Issue