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