@nestia/benchmark 0.2.0-dev.20240725 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -36,7 +36,7 @@ var DynamicBenchmarWriter;
|
|
|
36
36
|
var format = function (value) {
|
|
37
37
|
return value === null ? "N/A" : (Math.floor(value * 100) / 100).toLocaleString();
|
|
38
38
|
};
|
|
39
|
-
var
|
|
39
|
+
var head = function () {
|
|
40
40
|
return [
|
|
41
41
|
"Type",
|
|
42
42
|
"Count",
|
|
@@ -49,7 +49,7 @@ var DynamicBenchmarWriter;
|
|
|
49
49
|
"\n" +
|
|
50
50
|
new Array(7).fill("----").join("|");
|
|
51
51
|
};
|
|
52
|
-
var
|
|
52
|
+
var row = function (title, s) {
|
|
53
53
|
return [
|
|
54
54
|
title,
|
|
55
55
|
s.count.toLocaleString(),
|
|
@@ -60,6 +60,12 @@ var DynamicBenchmarWriter;
|
|
|
60
60
|
format(s.maximum),
|
|
61
61
|
].join(" | ");
|
|
62
62
|
};
|
|
63
|
+
var line = function (getter) {
|
|
64
|
+
return "line [".concat(report.memories.map(function (m) { return Math.floor(getter(m.usage) / Math.pow(1024, 2)); }).join(", "), "]");
|
|
65
|
+
};
|
|
66
|
+
var legend = function (color, label) {
|
|
67
|
+
return "<font color='".concat(color, "'>\u25A0</font> ").concat(label);
|
|
68
|
+
};
|
|
63
69
|
return __spreadArray(__spreadArray(__spreadArray([
|
|
64
70
|
"# Benchmark Report",
|
|
65
71
|
"> Generated by [`@nestia/benchmark`](https://github.com/samchon/nestia)",
|
|
@@ -78,23 +84,38 @@ var DynamicBenchmarWriter;
|
|
|
78
84
|
" - Complete: ".concat(report.completed_at),
|
|
79
85
|
" - Elapsed: ".concat((new Date(report.completed_at).getTime() - new Date(report.started_at).getTime()).toLocaleString(), " ms"),
|
|
80
86
|
"",
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
head(),
|
|
88
|
+
row("Total", report.statistics),
|
|
83
89
|
"",
|
|
84
90
|
"> Unit: milliseconds",
|
|
85
91
|
"",
|
|
92
|
+
"## Memory Usage",
|
|
93
|
+
"```mermaid",
|
|
94
|
+
"xychart-beta",
|
|
95
|
+
" x-axis \"Time (second)\"",
|
|
96
|
+
" y-axis \"Memory (MB)\"",
|
|
97
|
+
" ".concat(line(function (m) { return m.rss; })),
|
|
98
|
+
" ".concat(line(function (m) { return m.heapTotal; })),
|
|
99
|
+
" ".concat(line(function (m) { return m.heapUsed + m.external; })),
|
|
100
|
+
" ".concat(line(function (m) { return m.heapUsed; })),
|
|
101
|
+
"```",
|
|
102
|
+
"",
|
|
103
|
+
" - ".concat(legend("#5193d1", "Resident Set Size")),
|
|
104
|
+
" - ".concat(legend("#64c779", "Heap Total")),
|
|
105
|
+
" - ".concat(legend("#c85443", "Heap Used + External")),
|
|
106
|
+
" - ".concat(legend("#eac644", "Heap Used Only")),
|
|
107
|
+
"",
|
|
86
108
|
"## Endpoints",
|
|
87
|
-
|
|
109
|
+
head()
|
|
88
110
|
], __read(report.endpoints
|
|
89
111
|
.slice()
|
|
90
112
|
.sort(function (a, b) { var _a, _b; return ((_a = b.mean) !== null && _a !== void 0 ? _a : 0) - ((_b = a.mean) !== null && _b !== void 0 ? _b : 0); })
|
|
91
113
|
.map(function (endpoint) {
|
|
92
|
-
return
|
|
114
|
+
return row("".concat(endpoint.method, " ").concat(endpoint.path), endpoint);
|
|
93
115
|
})), false), [
|
|
94
116
|
"",
|
|
95
117
|
"> Unit: milliseconds",
|
|
96
118
|
"",
|
|
97
|
-
chart(report.memories),
|
|
98
119
|
"## Failures",
|
|
99
120
|
"Method | Path | Count | Failures",
|
|
100
121
|
"-------|------|-------|----------"
|
|
@@ -111,17 +132,5 @@ var DynamicBenchmarWriter;
|
|
|
111
132
|
].join(" | ");
|
|
112
133
|
})), false).join("\n");
|
|
113
134
|
};
|
|
114
|
-
var chart = function (memories) {
|
|
115
|
-
return [
|
|
116
|
-
"## Memory Usage",
|
|
117
|
-
"```mermaid",
|
|
118
|
-
"xychart-beta",
|
|
119
|
-
" title Memory Usage",
|
|
120
|
-
" x-axis \"Time (s)\"",
|
|
121
|
-
" y-axis \"Memory (MB)\"",
|
|
122
|
-
" line [".concat(memories.map(function (m) { return Math.floor((m.usage.heapUsed + m.usage.external) / Math.pow(1024, 2)); }).join(", "), "]"),
|
|
123
|
-
"```",
|
|
124
|
-
].join("\n");
|
|
125
|
-
};
|
|
126
135
|
})(DynamicBenchmarWriter || (exports.DynamicBenchmarWriter = DynamicBenchmarWriter = {}));
|
|
127
136
|
//# sourceMappingURL=DynamicBenchmarkReporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicBenchmarkReporter.js","sourceRoot":"","sources":["../../src/internal/DynamicBenchmarkReporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AAIpB,IAAiB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"DynamicBenchmarkReporter.js","sourceRoot":"","sources":["../../src/internal/DynamicBenchmarkReporter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0CAAoB;AAIpB,IAAiB,qBAAqB,CAkGrC;AAlGD,WAAiB,qBAAqB;IACvB,8BAAQ,GAAG,UAAC,MAAkC;QACzD,IAAM,MAAM,GAAG,UAAC,KAAoB;YAClC,OAAA,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE;QAAzE,CAAyE,CAAC;QAC5E,IAAM,IAAI,GAAG;YACX,OAAA;gBACE,MAAM;gBACN,OAAO;gBACP,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,SAAS;gBACT,SAAS;aACV,CAAC,IAAI,CAAC,KAAK,CAAC;gBACb,IAAI;gBACJ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAVnC,CAUmC,CAAC;QACtC,IAAM,GAAG,GAAG,UAAC,KAAa,EAAE,CAAyC;YACnE,OAAA;gBACE,KAAK;gBACL,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE;gBACxB,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE;gBAC1B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;gBACd,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;gBACf,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBACjB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;aAClB,CAAC,IAAI,CAAC,KAAK,CAAC;QARb,CAQa,CAAC;QAChB,IAAM,IAAI,GAAG,UAAC,MAAyC;YACrD,OAAA,gBAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAA,IAAI,EAAI,CAAC,CAAA,CAAC,EAAvC,CAAuC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG;QAA1F,CAA0F,CAAC;QAC7F,IAAM,MAAM,GAAG,UAAC,KAAa,EAAE,KAAa;YAC1C,OAAA,uBAAgB,KAAK,6BAAc,KAAK,CAAE;QAA1C,CAA0C,CAAC;QAE7C,OAAO;YACL,oBAAoB;YACpB,yEAAyE;YACzE,EAAE;YACF,oBAAoB;YACpB,qBAAc,YAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAE;YAClC,qBAAc,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,cAAc,EAAE,QAAK;YAClF,gCAAyB,OAAO,CAAC,OAAO,CAAE;YAC1C,yCAAyC;YACzC,eAAe;YACf,uBAAgB,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,CAAE;YAC/C,yBAAkB,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAE;YACnD,8BAAuB,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,CAAE;YAC7D,UAAU;YACV,uBAAgB,MAAM,CAAC,UAAU,CAAE;YACnC,0BAAmB,MAAM,CAAC,YAAY,CAAE;YACxC,yBAAkB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,cAAc,EAAE,QAAK;YACzH,EAAE;YACF,IAAI,EAAE;YACN,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC;YAC/B,EAAE;YACF,sBAAsB;YACtB,EAAE;YACF,iBAAiB;YACjB,YAAY;YACZ,cAAc;YACd,4BAA0B;YAC1B,0BAAwB;YACxB,YAAK,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,GAAG,EAAL,CAAK,CAAC,CAAE;YACzB,YAAK,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,EAAX,CAAW,CAAC,CAAE;YAC/B,YAAK,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAvB,CAAuB,CAAC,CAAE;YAC3C,YAAK,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,QAAQ,EAAV,CAAU,CAAC,CAAE;YAC9B,KAAK;YACL,EAAE;YACF,aAAM,MAAM,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAE;YAC9C,aAAM,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAE;YACvC,aAAM,MAAM,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAE;YACjD,aAAM,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAE;YAC3C,EAAE;YACF,cAAc;YACd,IAAI,EAAE;kBACH,MAAM,CAAC,SAAS;aAChB,KAAK,EAAE;aACP,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,gBAAK,OAAA,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC;aAC7C,GAAG,CAAC,UAAC,QAAQ;YACZ,OAAA,GAAG,CAAC,UAAG,QAAQ,CAAC,MAAM,cAAI,QAAQ,CAAC,IAAI,CAAE,EAAE,QAAQ,CAAC;QAApD,CAAoD,CACrD;YACH,EAAE;YACF,sBAAsB;YACtB,EAAE;YACF,aAAa;YACb,kCAAkC;YAClC,mCAAmC;0BAChC,MAAM,CAAC,SAAS;aAChB,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,EAArB,CAAqB,CAAC;aACpC,KAAK,EAAE;aACP,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC;aACjC,GAAG,CAAC,UAAC,CAAC;YACL,OAAA;gBACE,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE;gBACxB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE;aACvC,CAAC,IAAI,CAAC,KAAK,CAAC;QALb,CAKa,CACd,UACH,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;AACJ,CAAC,EAlGgB,qBAAqB,qCAArB,qBAAqB,QAkGrC"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@ export namespace DynamicBenchmarWriter {
|
|
|
6
6
|
export const markdown = (report: DynamicBenchmarker.IReport): string => {
|
|
7
7
|
const format = (value: number | null) =>
|
|
8
8
|
value === null ? "N/A" : (Math.floor(value * 100) / 100).toLocaleString();
|
|
9
|
-
const
|
|
9
|
+
const head = () =>
|
|
10
10
|
[
|
|
11
11
|
"Type",
|
|
12
12
|
"Count",
|
|
@@ -18,10 +18,7 @@ export namespace DynamicBenchmarWriter {
|
|
|
18
18
|
].join(" | ") +
|
|
19
19
|
"\n" +
|
|
20
20
|
new Array(7).fill("----").join("|");
|
|
21
|
-
const
|
|
22
|
-
title: string,
|
|
23
|
-
s: DynamicBenchmarker.IReport.IStatistics,
|
|
24
|
-
) =>
|
|
21
|
+
const row = (title: string, s: DynamicBenchmarker.IReport.IStatistics) =>
|
|
25
22
|
[
|
|
26
23
|
title,
|
|
27
24
|
s.count.toLocaleString(),
|
|
@@ -31,6 +28,11 @@ export namespace DynamicBenchmarWriter {
|
|
|
31
28
|
format(s.minimum),
|
|
32
29
|
format(s.maximum),
|
|
33
30
|
].join(" | ");
|
|
31
|
+
const line = (getter: (m: NodeJS.MemoryUsage) => number): string =>
|
|
32
|
+
`line [${report.memories.map((m) => Math.floor(getter(m.usage) / 1024 ** 2)).join(", ")}]`;
|
|
33
|
+
const legend = (color: string, label: string): string =>
|
|
34
|
+
`<font color='${color}'>■</font> ${label}`;
|
|
35
|
+
|
|
34
36
|
return [
|
|
35
37
|
`# Benchmark Report`,
|
|
36
38
|
"> Generated by [`@nestia/benchmark`](https://github.com/samchon/nestia)",
|
|
@@ -49,23 +51,38 @@ export namespace DynamicBenchmarWriter {
|
|
|
49
51
|
` - Complete: ${report.completed_at}`,
|
|
50
52
|
` - Elapsed: ${(new Date(report.completed_at).getTime() - new Date(report.started_at).getTime()).toLocaleString()} ms`,
|
|
51
53
|
``,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
head(),
|
|
55
|
+
row("Total", report.statistics),
|
|
54
56
|
"",
|
|
55
57
|
"> Unit: milliseconds",
|
|
56
58
|
"",
|
|
59
|
+
"## Memory Usage",
|
|
60
|
+
"```mermaid",
|
|
61
|
+
"xychart-beta",
|
|
62
|
+
` x-axis "Time (second)"`,
|
|
63
|
+
` y-axis "Memory (MB)"`,
|
|
64
|
+
` ${line((m) => m.rss)}`,
|
|
65
|
+
` ${line((m) => m.heapTotal)}`,
|
|
66
|
+
` ${line((m) => m.heapUsed + m.external)}`,
|
|
67
|
+
` ${line((m) => m.heapUsed)}`,
|
|
68
|
+
"```",
|
|
69
|
+
"",
|
|
70
|
+
` - ${legend("#5193d1", "Resident Set Size")}`,
|
|
71
|
+
` - ${legend("#64c779", "Heap Total")}`,
|
|
72
|
+
` - ${legend("#c85443", "Heap Used + External")}`,
|
|
73
|
+
` - ${legend("#eac644", "Heap Used Only")}`,
|
|
74
|
+
"",
|
|
57
75
|
"## Endpoints",
|
|
58
|
-
|
|
76
|
+
head(),
|
|
59
77
|
...report.endpoints
|
|
60
78
|
.slice()
|
|
61
79
|
.sort((a, b) => (b.mean ?? 0) - (a.mean ?? 0))
|
|
62
80
|
.map((endpoint) =>
|
|
63
|
-
|
|
81
|
+
row(`${endpoint.method} ${endpoint.path}`, endpoint),
|
|
64
82
|
),
|
|
65
83
|
"",
|
|
66
84
|
"> Unit: milliseconds",
|
|
67
85
|
"",
|
|
68
|
-
chart(report.memories),
|
|
69
86
|
"## Failures",
|
|
70
87
|
"Method | Path | Count | Failures",
|
|
71
88
|
"-------|------|-------|----------",
|
|
@@ -83,17 +100,4 @@ export namespace DynamicBenchmarWriter {
|
|
|
83
100
|
),
|
|
84
101
|
].join("\n");
|
|
85
102
|
};
|
|
86
|
-
|
|
87
|
-
const chart = (memories: DynamicBenchmarker.IReport.IMemory[]): string => {
|
|
88
|
-
return [
|
|
89
|
-
"## Memory Usage",
|
|
90
|
-
"```mermaid",
|
|
91
|
-
"xychart-beta",
|
|
92
|
-
" title Memory Usage",
|
|
93
|
-
` x-axis "Time (s)"`,
|
|
94
|
-
` y-axis "Memory (MB)"`,
|
|
95
|
-
` line [${memories.map((m) => Math.floor((m.usage.heapUsed + m.usage.external) / 1024 ** 2)).join(", ")}]`,
|
|
96
|
-
"```",
|
|
97
|
-
].join("\n");
|
|
98
|
-
};
|
|
99
103
|
}
|