Skip to content
Snippets Groups Projects
Commit 2fe2ec67 authored by murgatroid99's avatar murgatroid99
Browse files

Added standard performance metrics

parent 909bfaea
No related branches found
No related tags found
No related merge requests found
...@@ -83,6 +83,16 @@ function runTest(iterations, callback) { ...@@ -83,6 +83,16 @@ function runTest(iterations, callback) {
warmUp(100); warmUp(100);
} }
function percentile(arr, percentile) {
if (percentile > 99) {
percentile = 99;
}
if (percentile < 0) {
percentile = 0;
}
return arr[(arr.length * percentile / 100)|0];
}
if (require.main === module) { if (require.main === module) {
var count; var count;
if (process.argv.length >= 3) { if (process.argv.length >= 3) {
...@@ -91,13 +101,14 @@ if (require.main === module) { ...@@ -91,13 +101,14 @@ if (require.main === module) {
count = 100; count = 100;
} }
runTest(count, function(results) { runTest(count, function(results) {
var sorted_intervals = _.sortBy(results.intervals, _.identity);
console.log('count:', count); console.log('count:', count);
console.log('total time:', results.total, 'us'); console.log('total time:', results.total, 'us');
console.log('min latency:', _.min(results.intervals), 'us'); console.log('median:', percentile(sorted_intervals, 50), 'us');
console.log('max latency:', _.max(results.intervals), 'us'); console.log('90th percentile:', percentile(sorted_intervals, 90), 'us');
console.log('average latency:', _.reduce(results.intervals, function(a, b){ console.log('95th percentile:', percentile(sorted_intervals, 95), 'us');
return a+b; console.log('99th percentile:', percentile(sorted_intervals, 99), 'us');
}) / count, 'us'); console.log('QPS:', (count / results.total) * 1000000);
}); });
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment