Skip to content

Commit 630e66c

Browse files
committed
update benchmark
1 parent 2af2358 commit 630e66c

File tree

3 files changed

+146
-115
lines changed

3 files changed

+146
-115
lines changed

benchmark/log/vs-pino.js

Lines changed: 0 additions & 115 deletions
This file was deleted.

benchmark/logger/vs-pino.js

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
const fs = require('fs');
5+
6+
const bench = common.createBenchmark(main, {
7+
n: [1e5],
8+
logger: ['node-logger', 'pino'],
9+
scenario: ['simple', 'child', 'disabled', 'fields'],
10+
});
11+
12+
function main({ n, logger, scenario }) {
13+
const nullFd = fs.openSync('/dev/null', 'w');
14+
let testLogger;
15+
let consumer; // ← Consumer'ı üstte tanımla
16+
17+
if (logger === 'node-logger') {
18+
const { createLogger, JSONConsumer } = require('logger');
19+
20+
switch (scenario) {
21+
case 'simple': {
22+
consumer = new JSONConsumer({ stream: nullFd, level: 'info' });
23+
consumer.attach();
24+
testLogger = createLogger({ level: 'info' });
25+
26+
bench.start();
27+
for (let i = 0; i < n; i++) {
28+
testLogger.info('benchmark test message');
29+
}
30+
bench.end(n);
31+
break;
32+
}
33+
34+
case 'child': {
35+
consumer = new JSONConsumer({ stream: nullFd, level: 'info' });
36+
consumer.attach();
37+
const baseLogger = createLogger({ level: 'info' });
38+
testLogger = baseLogger.child({ requestId: 'req-123', userId: 456 });
39+
40+
bench.start();
41+
for (let i = 0; i < n; i++) {
42+
testLogger.info('benchmark test message');
43+
}
44+
bench.end(n);
45+
break;
46+
}
47+
48+
case 'disabled': {
49+
consumer = new JSONConsumer({ stream: nullFd, level: 'warn' });
50+
consumer.attach();
51+
testLogger = createLogger({ level: 'warn' });
52+
53+
bench.start();
54+
for (let i = 0; i < n; i++) {
55+
testLogger.debug('benchmark test message');
56+
}
57+
bench.end(n);
58+
break;
59+
}
60+
61+
case 'fields': {
62+
consumer = new JSONConsumer({ stream: nullFd, level: 'info' });
63+
consumer.attach();
64+
testLogger = createLogger({ level: 'info' });
65+
66+
bench.start();
67+
for (let i = 0; i < n; i++) {
68+
testLogger.info('benchmark test message', {
69+
field1: 'value1',
70+
field2: 'value2',
71+
field3: 'value3',
72+
field4: 'value4',
73+
field5: 'value5',
74+
});
75+
}
76+
bench.end(n);
77+
break;
78+
}
79+
}
80+
81+
if (consumer) { // ← Güvenlik kontrolü
82+
consumer.flushSync();
83+
}
84+
fs.closeSync(nullFd);
85+
86+
} else if (logger === 'pino') {
87+
const pino = require('pino');
88+
const destination = pino.destination({ dest: nullFd, sync: false });
89+
90+
switch (scenario) {
91+
case 'simple': {
92+
testLogger = pino({ level: 'info' }, destination);
93+
94+
bench.start();
95+
for (let i = 0; i < n; i++) {
96+
testLogger.info('benchmark test message');
97+
}
98+
bench.end(n);
99+
break;
100+
}
101+
102+
case 'child': {
103+
const baseLogger = pino({ level: 'info' }, destination);
104+
testLogger = baseLogger.child({ requestId: 'req-123', userId: 456 });
105+
106+
bench.start();
107+
for (let i = 0; i < n; i++) {
108+
testLogger.info('benchmark test message');
109+
}
110+
bench.end(n);
111+
break;
112+
}
113+
114+
case 'disabled': {
115+
testLogger = pino({ level: 'warn' }, destination);
116+
117+
bench.start();
118+
for (let i = 0; i < n; i++) {
119+
testLogger.debug('benchmark test message');
120+
}
121+
bench.end(n);
122+
break;
123+
}
124+
125+
case 'fields': {
126+
testLogger = pino({ level: 'info' }, destination);
127+
128+
bench.start();
129+
for (let i = 0; i < n; i++) {
130+
testLogger.info({
131+
msg: 'benchmark test message',
132+
field1: 'value1',
133+
field2: 'value2',
134+
field3: 'value3',
135+
field4: 'value4',
136+
field5: 'value5',
137+
});
138+
}
139+
bench.end(n);
140+
break;
141+
}
142+
}
143+
144+
destination.flushSync();
145+
}
146+
}

0 commit comments

Comments
 (0)