aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/node/examples
diff options
context:
space:
mode:
authorGravatar murgatroid99 <mlumish@google.com>2015-02-11 12:28:34 -0800
committerGravatar murgatroid99 <mlumish@google.com>2015-02-11 12:28:34 -0800
commit2fe2ec6736b19df8b278085ac1a19c787be50887 (patch)
tree9784ba2dffb8d2997103c2e8db6daf33b51fb68e /src/node/examples
parent909bfaea41ddfd44e6d96a3fff57495b7b7b9a06 (diff)
Added standard performance metrics
Diffstat (limited to 'src/node/examples')
-rw-r--r--src/node/examples/perf_test.js21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/node/examples/perf_test.js b/src/node/examples/perf_test.js
index 7da600c615..c5e2872736 100644
--- a/src/node/examples/perf_test.js
+++ b/src/node/examples/perf_test.js
@@ -83,6 +83,16 @@ function runTest(iterations, callback) {
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) {
var count;
if (process.argv.length >= 3) {
@@ -91,13 +101,14 @@ if (require.main === module) {
count = 100;
}
runTest(count, function(results) {
+ var sorted_intervals = _.sortBy(results.intervals, _.identity);
console.log('count:', count);
console.log('total time:', results.total, 'us');
- console.log('min latency:', _.min(results.intervals), 'us');
- console.log('max latency:', _.max(results.intervals), 'us');
- console.log('average latency:', _.reduce(results.intervals, function(a, b){
- return a+b;
- }) / count, 'us');
+ console.log('median:', percentile(sorted_intervals, 50), 'us');
+ console.log('90th percentile:', percentile(sorted_intervals, 90), 'us');
+ console.log('95th percentile:', percentile(sorted_intervals, 95), 'us');
+ console.log('99th percentile:', percentile(sorted_intervals, 99), 'us');
+ console.log('QPS:', (count / results.total) * 1000000);
});
}