Name: js-handler/node_modules/restify/node_modules/bunyan/tools/timechild.js 
1:
#!/usr/bin/env node
2:
/*
3:
 * Time `log.child(...)`.
4:
 *
5:
 * Getting 0.011ms on my Mac. For about 1000 req/s that means that the
6:
 * `log.child` would be about 1% of the time handling that request.
7:
 * Could do better. I.e. consider a hackish fast path.
8:
 *
9:
 * ...
10:
 *
11:
 * Added: `log.fastchild({...}, true)`. Use the `true` to assert that
12:
 * the given options are just new fields (and no serializers).
13:
 * Result: Another order of magnitude.
14:
 */
15:
 
16:
var ben = require('ben');  // npm install ben
17:
var Logger = require('../lib/bunyan');
18:
 
19:
var log = new Logger({
20:
    name: 'svc',
21:
    streams: [
22:
        {
23:
            path: __dirname + '/timechild.log'
24:
        },
25:
        {
26:
            stream: process.stdout
27:
        }
28:
    ],
29:
    serializers: {
30:
        err: Logger.stdSerializers.err
31:
    }
32:
});
33:
 
34:
console.log('Time `log.child`:');
35:
 
36:
var ms = ben(1e5, function () {
37:
    var child = log.child();
38:
});
39:
console.log(' - adding no fields:  %dms per iteration', ms);
40:
 
41:
var ms = ben(1e5, function () {
42:
    var child = log.child({a:1});
43:
});
44:
console.log(' - adding one field:  %dms per iteration', ms);
45:
 
46:
var ms = ben(1e5, function () {
47:
    var child = log.child({a:1, b:2});
48:
});
49:
console.log(' - adding two fields: %dms per iteration', ms);
50:
 
51:
function fooSerializer(obj) {
52:
    return {bar: obj.bar};
53:
}
54:
var ms = ben(1e5, function () {
55:
    var child = log.child({
56:
        a: 1,
57:
        serializers: {foo: fooSerializer}
58:
    });
59:
});
60:
console.log(' - adding serializer and one field: %dms per iteration', ms);
61:
 
62:
var ms = ben(1e5, function () {
63:
    var child = log.child({
64:
        a: 1,
65:
        streams: [ {stream: process.stderr} ]
66:
    });
67:
});
68:
console.log(' - adding a (stderr) stream and one field: %dms per iteration',
69:
    ms);
70:
 
71:
var ms = ben(1e6, function () {
72:
    var child = log.child({}, true);
73:
});
74:
console.log(' - [fast] adding no fields:  %dms per iteration', ms);
75:
 
76:
var ms = ben(1e6, function () {
77:
    var child = log.child({a:1}, true);
78:
});
79:
console.log(' - [fast] adding one field:  %dms per iteration', ms);
80:
 
81:
var ms = ben(1e6, function () {
82:
    var child = log.child({a:1, b:2}, true);
83:
});
84:
console.log(' - [fast] adding two fields: %dms per iteration', ms);