data-structure-typed 2.4.0 → 2.4.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.
- package/CHANGELOG.md +1 -1
- package/README.md +2 -3
- package/README_CN.md +0 -1
- package/benchmark/report.html +118 -40
- package/benchmark/report.json +726 -726
- package/dist/cjs/index.cjs +79 -21
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs-legacy/index.cjs +79 -21
- package/dist/cjs-legacy/index.cjs.map +1 -1
- package/dist/esm/index.mjs +79 -21
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm-legacy/index.mjs +79 -21
- package/dist/esm-legacy/index.mjs.map +1 -1
- package/dist/types/data-structures/binary-tree/tree-map.d.ts +17 -6
- package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +13 -5
- package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +12 -5
- package/dist/types/data-structures/binary-tree/tree-set.d.ts +15 -4
- package/dist/types/types/data-structures/binary-tree/tree-map.d.ts +6 -1
- package/dist/types/types/data-structures/binary-tree/tree-multi-set.d.ts +6 -1
- package/dist/types/types/data-structures/binary-tree/tree-set.d.ts +6 -1
- package/dist/umd/data-structure-typed.js +79 -21
- package/dist/umd/data-structure-typed.js.map +1 -1
- package/dist/umd/data-structure-typed.min.js +4 -4
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +6 -2
- package/src/data-structures/binary-tree/tree-map.ts +35 -13
- package/src/data-structures/binary-tree/tree-multi-map.ts +41 -20
- package/src/data-structures/binary-tree/tree-multi-set.ts +17 -6
- package/src/data-structures/binary-tree/tree-set.ts +19 -6
- package/src/types/data-structures/binary-tree/tree-map.ts +7 -1
- package/src/types/data-structures/binary-tree/tree-multi-set.ts +7 -1
- package/src/types/data-structures/binary-tree/tree-set.ts +7 -1
- package/test/performance/reportor-enhanced.mjs +256 -100
- package/test/unit/data-structures/binary-tree/tree-map.test.ts +46 -0
- package/test/unit/data-structures/binary-tree/tree-multi-map.rfc.test.ts +47 -0
- package/test/unit/data-structures/binary-tree/tree-multi-set.test.ts +49 -0
- package/test/unit/data-structures/binary-tree/tree-set.test.ts +44 -0
package/benchmark/report.json
CHANGED
|
@@ -1,400 +1,400 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-02-
|
|
2
|
+
"timestamp": "2026-02-27T09:58:22.397Z",
|
|
3
3
|
"javascript": [
|
|
4
4
|
{
|
|
5
5
|
"testName": "tree-map",
|
|
6
6
|
"benchmarks": [
|
|
7
7
|
{
|
|
8
8
|
"Test Case": "1,000,000 set TreeMap",
|
|
9
|
-
"Latency Avg (ms)":
|
|
10
|
-
"Min (ms)":
|
|
11
|
-
"Max (ms)":
|
|
12
|
-
"Stability": "±
|
|
9
|
+
"Latency Avg (ms)": 1130.7,
|
|
10
|
+
"Min (ms)": 996.21,
|
|
11
|
+
"Max (ms)": 1861.87,
|
|
12
|
+
"Stability": "±26.38%"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"Test Case": "1,000,000 set TreeMap (Node)",
|
|
16
|
-
"Latency Avg (ms)":
|
|
17
|
-
"Min (ms)":
|
|
18
|
-
"Max (ms)":
|
|
19
|
-
"Stability": "±
|
|
16
|
+
"Latency Avg (ms)": 904.29,
|
|
17
|
+
"Min (ms)": 890.44,
|
|
18
|
+
"Max (ms)": 914.89,
|
|
19
|
+
"Stability": "±0.81%"
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
"Test Case": "1,000,000 set RBT",
|
|
23
|
-
"Latency Avg (ms)":
|
|
24
|
-
"Min (ms)":
|
|
25
|
-
"Max (ms)":
|
|
26
|
-
"Stability": "±
|
|
23
|
+
"Latency Avg (ms)": 1146.79,
|
|
24
|
+
"Min (ms)": 1044.9,
|
|
25
|
+
"Max (ms)": 1535.27,
|
|
26
|
+
"Stability": "±17.49%"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"Test Case": "1,000,000 set RBT (Node)",
|
|
30
|
-
"Latency Avg (ms)":
|
|
31
|
-
"Min (ms)":
|
|
32
|
-
"Max (ms)":
|
|
33
|
-
"Stability": "±
|
|
30
|
+
"Latency Avg (ms)": 968.9,
|
|
31
|
+
"Min (ms)": 960.13,
|
|
32
|
+
"Max (ms)": 980.74,
|
|
33
|
+
"Stability": "±0.74%"
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
"Test Case": "1,000,000 set js-sdsl",
|
|
37
|
-
"Latency Avg (ms)":
|
|
38
|
-
"Min (ms)":
|
|
39
|
-
"Max (ms)":
|
|
40
|
-
"Stability": "±
|
|
37
|
+
"Latency Avg (ms)": 640.34,
|
|
38
|
+
"Min (ms)": 608.96,
|
|
39
|
+
"Max (ms)": 676.46,
|
|
40
|
+
"Stability": "±3.07%"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"Test Case": "1,000,000 get TreeMap",
|
|
44
|
-
"Latency Avg (ms)":
|
|
45
|
-
"Min (ms)":
|
|
46
|
-
"Max (ms)":
|
|
47
|
-
"Stability": "±0.
|
|
44
|
+
"Latency Avg (ms)": 156.38,
|
|
45
|
+
"Min (ms)": 152.87,
|
|
46
|
+
"Max (ms)": 160.55,
|
|
47
|
+
"Stability": "±0.59%"
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"Test Case": "1,000,000 get TreeMap (Node)",
|
|
51
|
-
"Latency Avg (ms)":
|
|
52
|
-
"Min (ms)":
|
|
53
|
-
"Max (ms)":
|
|
54
|
-
"Stability": "±0.
|
|
51
|
+
"Latency Avg (ms)": 867.81,
|
|
52
|
+
"Min (ms)": 861.74,
|
|
53
|
+
"Max (ms)": 872.7,
|
|
54
|
+
"Stability": "±0.46%"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"Test Case": "1,000,000 get RBT",
|
|
58
|
-
"Latency Avg (ms)":
|
|
59
|
-
"Min (ms)":
|
|
60
|
-
"Max (ms)":
|
|
61
|
-
"Stability": "±
|
|
58
|
+
"Latency Avg (ms)": 156.19,
|
|
59
|
+
"Min (ms)": 152.85,
|
|
60
|
+
"Max (ms)": 159.65,
|
|
61
|
+
"Stability": "±0.51%"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"Test Case": "1,000,000 get RBT (Node)",
|
|
65
|
-
"Latency Avg (ms)":
|
|
66
|
-
"Min (ms)":
|
|
67
|
-
"Max (ms)":
|
|
68
|
-
"Stability": "±0.
|
|
65
|
+
"Latency Avg (ms)": 916.83,
|
|
66
|
+
"Min (ms)": 907.22,
|
|
67
|
+
"Max (ms)": 931.59,
|
|
68
|
+
"Stability": "±0.96%"
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"Test Case": "1,000,000 get js-sdsl",
|
|
72
|
-
"Latency Avg (ms)":
|
|
73
|
-
"Min (ms)":
|
|
74
|
-
"Max (ms)":
|
|
75
|
-
"Stability": "±
|
|
72
|
+
"Latency Avg (ms)": 672.22,
|
|
73
|
+
"Min (ms)": 660.56,
|
|
74
|
+
"Max (ms)": 686.89,
|
|
75
|
+
"Stability": "±1.05%"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"Test Case": "1,000,000 build+get TreeMap",
|
|
79
|
-
"Latency Avg (ms)":
|
|
80
|
-
"Min (ms)":
|
|
81
|
-
"Max (ms)":
|
|
82
|
-
"Stability": "±
|
|
79
|
+
"Latency Avg (ms)": 1262.71,
|
|
80
|
+
"Min (ms)": 1203.82,
|
|
81
|
+
"Max (ms)": 1589.5,
|
|
82
|
+
"Stability": "±10.56%"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"Test Case": "1,000,000 build+get TreeMap (Node)",
|
|
86
|
-
"Latency Avg (ms)":
|
|
87
|
-
"Min (ms)":
|
|
88
|
-
"Max (ms)":
|
|
89
|
-
"Stability": "±
|
|
86
|
+
"Latency Avg (ms)": 1712.26,
|
|
87
|
+
"Min (ms)": 1668.78,
|
|
88
|
+
"Max (ms)": 1765.61,
|
|
89
|
+
"Stability": "±1.93%"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"Test Case": "1,000,000 build+get RBT",
|
|
93
|
-
"Latency Avg (ms)":
|
|
94
|
-
"Min (ms)":
|
|
95
|
-
"Max (ms)":
|
|
96
|
-
"Stability": "±
|
|
93
|
+
"Latency Avg (ms)": 1215.09,
|
|
94
|
+
"Min (ms)": 1200.03,
|
|
95
|
+
"Max (ms)": 1266.32,
|
|
96
|
+
"Stability": "±1.76%"
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"Test Case": "1,000,000 build+get RBT (Node)",
|
|
100
|
-
"Latency Avg (ms)":
|
|
101
|
-
"Min (ms)":
|
|
102
|
-
"Max (ms)":
|
|
103
|
-
"Stability": "±
|
|
100
|
+
"Latency Avg (ms)": 1811.83,
|
|
101
|
+
"Min (ms)": 1791.31,
|
|
102
|
+
"Max (ms)": 1836.34,
|
|
103
|
+
"Stability": "±0.87%"
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
106
|
"Test Case": "1,000,000 build+get js-sdsl",
|
|
107
|
-
"Latency Avg (ms)":
|
|
108
|
-
"Min (ms)":
|
|
109
|
-
"Max (ms)":
|
|
110
|
-
"Stability": "±
|
|
107
|
+
"Latency Avg (ms)": 1213.71,
|
|
108
|
+
"Min (ms)": 1193.46,
|
|
109
|
+
"Max (ms)": 1244.24,
|
|
110
|
+
"Stability": "±1.52%"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"Test Case": "100,000 rangeSearch TreeMap",
|
|
114
|
-
"Latency Avg (ms)":
|
|
115
|
-
"Min (ms)":
|
|
116
|
-
"Max (ms)":
|
|
117
|
-
"Stability": "±
|
|
114
|
+
"Latency Avg (ms)": 53.07,
|
|
115
|
+
"Min (ms)": 44.18,
|
|
116
|
+
"Max (ms)": 93.97,
|
|
117
|
+
"Stability": "±5.99%"
|
|
118
118
|
},
|
|
119
119
|
{
|
|
120
120
|
"Test Case": "100,000 rangeSearch TreeMap (Node)",
|
|
121
|
-
"Latency Avg (ms)":
|
|
122
|
-
"Min (ms)":
|
|
123
|
-
"Max (ms)":
|
|
124
|
-
"Stability": "±
|
|
121
|
+
"Latency Avg (ms)": 54.02,
|
|
122
|
+
"Min (ms)": 52.58,
|
|
123
|
+
"Max (ms)": 61.28,
|
|
124
|
+
"Stability": "±0.73%"
|
|
125
125
|
},
|
|
126
126
|
{
|
|
127
127
|
"Test Case": "100,000 navigable TreeMap",
|
|
128
|
-
"Latency Avg (ms)":
|
|
129
|
-
"Min (ms)":
|
|
130
|
-
"Max (ms)":
|
|
131
|
-
"Stability": "±0.
|
|
128
|
+
"Latency Avg (ms)": 174.8,
|
|
129
|
+
"Min (ms)": 169.03,
|
|
130
|
+
"Max (ms)": 184.16,
|
|
131
|
+
"Stability": "±0.95%"
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
"Test Case": "100,000 navigable TreeMap (Node)",
|
|
135
|
-
"Latency Avg (ms)":
|
|
136
|
-
"Min (ms)":
|
|
137
|
-
"Max (ms)":
|
|
138
|
-
"Stability": "±0.
|
|
135
|
+
"Latency Avg (ms)": 272.56,
|
|
136
|
+
"Min (ms)": 267.11,
|
|
137
|
+
"Max (ms)": 279.11,
|
|
138
|
+
"Stability": "±0.66%"
|
|
139
139
|
},
|
|
140
140
|
{
|
|
141
141
|
"Test Case": "100,000 build+rangeSearch TreeMap",
|
|
142
|
-
"Latency Avg (ms)":
|
|
143
|
-
"Min (ms)":
|
|
144
|
-
"Max (ms)":
|
|
145
|
-
"Stability": "±
|
|
142
|
+
"Latency Avg (ms)": 1183.72,
|
|
143
|
+
"Min (ms)": 1038.01,
|
|
144
|
+
"Max (ms)": 1985.82,
|
|
145
|
+
"Stability": "±27.64%"
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
148
|
"Test Case": "100,000 build+rangeSearch TreeMap (Node)",
|
|
149
|
-
"Latency Avg (ms)":
|
|
150
|
-
"Min (ms)":
|
|
151
|
-
"Max (ms)":
|
|
152
|
-
"Stability": "±
|
|
149
|
+
"Latency Avg (ms)": 954.72,
|
|
150
|
+
"Min (ms)": 949.15,
|
|
151
|
+
"Max (ms)": 964.84,
|
|
152
|
+
"Stability": "±0.52%"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"Test Case": "100,000 build+navigable TreeMap",
|
|
156
|
-
"Latency Avg (ms)":
|
|
157
|
-
"Min (ms)":
|
|
158
|
-
"Max (ms)":
|
|
159
|
-
"Stability": "±
|
|
156
|
+
"Latency Avg (ms)": 1205.71,
|
|
157
|
+
"Min (ms)": 1186.63,
|
|
158
|
+
"Max (ms)": 1218.09,
|
|
159
|
+
"Stability": "±1.13%"
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
"Test Case": "100,000 build+navigable TreeMap (Node)",
|
|
163
|
-
"Latency Avg (ms)":
|
|
164
|
-
"Min (ms)":
|
|
165
|
-
"Max (ms)":
|
|
166
|
-
"Stability": "±
|
|
163
|
+
"Latency Avg (ms)": 1178.08,
|
|
164
|
+
"Min (ms)": 1171.1,
|
|
165
|
+
"Max (ms)": 1190.9,
|
|
166
|
+
"Stability": "±0.67%"
|
|
167
167
|
}
|
|
168
168
|
],
|
|
169
|
-
"runTime":
|
|
170
|
-
"file": "/Users/revone
|
|
169
|
+
"runTime": 296.33,
|
|
170
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/tree-map.test.mjs"
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"testName": "tree-set",
|
|
174
174
|
"benchmarks": [
|
|
175
175
|
{
|
|
176
176
|
"Test Case": "1,000,000 add TreeSet",
|
|
177
|
-
"Latency Avg (ms)":
|
|
178
|
-
"Min (ms)":
|
|
179
|
-
"Max (ms)":
|
|
180
|
-
"Stability": "±
|
|
177
|
+
"Latency Avg (ms)": 1011.82,
|
|
178
|
+
"Min (ms)": 994.7,
|
|
179
|
+
"Max (ms)": 1026.94,
|
|
180
|
+
"Stability": "±1.26%"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"Test Case": "1,000,000 add TreeSet (Node)",
|
|
184
|
-
"Latency Avg (ms)":
|
|
185
|
-
"Min (ms)":
|
|
186
|
-
"Max (ms)":
|
|
187
|
-
"Stability": "±
|
|
184
|
+
"Latency Avg (ms)": 912.3,
|
|
185
|
+
"Min (ms)": 901.4,
|
|
186
|
+
"Max (ms)": 945.46,
|
|
187
|
+
"Stability": "±1.58%"
|
|
188
188
|
},
|
|
189
189
|
{
|
|
190
190
|
"Test Case": "1,000,000 add RBT",
|
|
191
|
-
"Latency Avg (ms)":
|
|
192
|
-
"Min (ms)":
|
|
193
|
-
"Max (ms)":
|
|
194
|
-
"Stability": "±
|
|
191
|
+
"Latency Avg (ms)": 1167.06,
|
|
192
|
+
"Min (ms)": 1046.4,
|
|
193
|
+
"Max (ms)": 1733.11,
|
|
194
|
+
"Stability": "±24.94%"
|
|
195
195
|
},
|
|
196
196
|
{
|
|
197
197
|
"Test Case": "1,000,000 add RBT (Node)",
|
|
198
|
-
"Latency Avg (ms)":
|
|
199
|
-
"Min (ms)":
|
|
200
|
-
"Max (ms)":
|
|
201
|
-
"Stability": "±
|
|
198
|
+
"Latency Avg (ms)": 975.7,
|
|
199
|
+
"Min (ms)": 958.94,
|
|
200
|
+
"Max (ms)": 989.59,
|
|
201
|
+
"Stability": "±1.16%"
|
|
202
202
|
},
|
|
203
203
|
{
|
|
204
204
|
"Test Case": "1,000,000 add js-sdsl",
|
|
205
|
-
"Latency Avg (ms)":
|
|
206
|
-
"Min (ms)":
|
|
207
|
-
"Max (ms)":
|
|
208
|
-
"Stability": "±
|
|
205
|
+
"Latency Avg (ms)": 642.32,
|
|
206
|
+
"Min (ms)": 624.09,
|
|
207
|
+
"Max (ms)": 653.38,
|
|
208
|
+
"Stability": "±1.23%"
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
"Test Case": "1,000,000 has TreeSet",
|
|
212
|
-
"Latency Avg (ms)":
|
|
213
|
-
"Min (ms)":
|
|
214
|
-
"Max (ms)":
|
|
215
|
-
"Stability": "±
|
|
212
|
+
"Latency Avg (ms)": 65.41,
|
|
213
|
+
"Min (ms)": 62.46,
|
|
214
|
+
"Max (ms)": 74.83,
|
|
215
|
+
"Stability": "±1.25%"
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"Test Case": "1,000,000 has TreeSet (Node)",
|
|
219
|
-
"Latency Avg (ms)":
|
|
220
|
-
"Min (ms)":
|
|
221
|
-
"Max (ms)":
|
|
222
|
-
"Stability": "±0.
|
|
219
|
+
"Latency Avg (ms)": 809.01,
|
|
220
|
+
"Min (ms)": 804.67,
|
|
221
|
+
"Max (ms)": 814.93,
|
|
222
|
+
"Stability": "±0.34%"
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
"Test Case": "1,000,000 has RBT",
|
|
226
|
-
"Latency Avg (ms)":
|
|
227
|
-
"Min (ms)":
|
|
228
|
-
"Max (ms)":
|
|
229
|
-
"Stability": "±
|
|
226
|
+
"Latency Avg (ms)": 67.48,
|
|
227
|
+
"Min (ms)": 63.98,
|
|
228
|
+
"Max (ms)": 83.28,
|
|
229
|
+
"Stability": "±1.56%"
|
|
230
230
|
},
|
|
231
231
|
{
|
|
232
232
|
"Test Case": "1,000,000 has RBT (Node)",
|
|
233
|
-
"Latency Avg (ms)":
|
|
234
|
-
"Min (ms)":
|
|
235
|
-
"Max (ms)":
|
|
236
|
-
"Stability": "±
|
|
233
|
+
"Latency Avg (ms)": 1034.91,
|
|
234
|
+
"Min (ms)": 928.36,
|
|
235
|
+
"Max (ms)": 1541.14,
|
|
236
|
+
"Stability": "±20.05%"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"Test Case": "1,000,000 has js-sdsl",
|
|
240
|
-
"Latency Avg (ms)":
|
|
241
|
-
"Min (ms)":
|
|
242
|
-
"Max (ms)":
|
|
243
|
-
"Stability": "±
|
|
240
|
+
"Latency Avg (ms)": 761.43,
|
|
241
|
+
"Min (ms)": 705.57,
|
|
242
|
+
"Max (ms)": 850.11,
|
|
243
|
+
"Stability": "±5.98%"
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
246
|
"Test Case": "1,000,000 build+has TreeSet",
|
|
247
|
-
"Latency Avg (ms)":
|
|
248
|
-
"Min (ms)":
|
|
249
|
-
"Max (ms)":
|
|
250
|
-
"Stability": "±
|
|
247
|
+
"Latency Avg (ms)": 1096.77,
|
|
248
|
+
"Min (ms)": 1059.07,
|
|
249
|
+
"Max (ms)": 1161.07,
|
|
250
|
+
"Stability": "±2.81%"
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
253
|
"Test Case": "1,000,000 build+has TreeSet (Node)",
|
|
254
|
-
"Latency Avg (ms)":
|
|
255
|
-
"Min (ms)":
|
|
256
|
-
"Max (ms)":
|
|
257
|
-
"Stability": "±1.
|
|
254
|
+
"Latency Avg (ms)": 1732.51,
|
|
255
|
+
"Min (ms)": 1712.26,
|
|
256
|
+
"Max (ms)": 1764.37,
|
|
257
|
+
"Stability": "±1.06%"
|
|
258
258
|
},
|
|
259
259
|
{
|
|
260
260
|
"Test Case": "1,000,000 build+has RBT",
|
|
261
|
-
"Latency Avg (ms)":
|
|
262
|
-
"Min (ms)":
|
|
263
|
-
"Max (ms)":
|
|
264
|
-
"Stability": "±
|
|
261
|
+
"Latency Avg (ms)": 1155.43,
|
|
262
|
+
"Min (ms)": 1118.08,
|
|
263
|
+
"Max (ms)": 1211.51,
|
|
264
|
+
"Stability": "±3.17%"
|
|
265
265
|
},
|
|
266
266
|
{
|
|
267
267
|
"Test Case": "1,000,000 build+has RBT (Node)",
|
|
268
|
-
"Latency Avg (ms)":
|
|
269
|
-
"Min (ms)":
|
|
270
|
-
"Max (ms)":
|
|
271
|
-
"Stability": "±
|
|
268
|
+
"Latency Avg (ms)": 1867.76,
|
|
269
|
+
"Min (ms)": 1826.38,
|
|
270
|
+
"Max (ms)": 1890.86,
|
|
271
|
+
"Stability": "±1.36%"
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
274
|
"Test Case": "1,000,000 build+has js-sdsl",
|
|
275
|
-
"Latency Avg (ms)":
|
|
276
|
-
"Min (ms)":
|
|
277
|
-
"Max (ms)":
|
|
278
|
-
"Stability": "±
|
|
275
|
+
"Latency Avg (ms)": 1311.66,
|
|
276
|
+
"Min (ms)": 1280.72,
|
|
277
|
+
"Max (ms)": 1417.29,
|
|
278
|
+
"Stability": "±4.19%"
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
"Test Case": "100,000 rangeSearch TreeSet",
|
|
282
|
-
"Latency Avg (ms)":
|
|
283
|
-
"Min (ms)":
|
|
284
|
-
"Max (ms)":
|
|
285
|
-
"Stability": "±0.
|
|
282
|
+
"Latency Avg (ms)": 20.83,
|
|
283
|
+
"Min (ms)": 18.93,
|
|
284
|
+
"Max (ms)": 22.13,
|
|
285
|
+
"Stability": "±0.88%"
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
288
|
"Test Case": "100,000 rangeSearch TreeSet (Node)",
|
|
289
|
-
"Latency Avg (ms)":
|
|
290
|
-
"Min (ms)":
|
|
291
|
-
"Max (ms)":
|
|
292
|
-
"Stability": "±1.
|
|
289
|
+
"Latency Avg (ms)": 20.74,
|
|
290
|
+
"Min (ms)": 19.48,
|
|
291
|
+
"Max (ms)": 26.37,
|
|
292
|
+
"Stability": "±1.34%"
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
"Test Case": "100,000 navigable TreeSet",
|
|
296
|
-
"Latency Avg (ms)":
|
|
297
|
-
"Min (ms)":
|
|
298
|
-
"Max (ms)":
|
|
299
|
-
"Stability": "±0.
|
|
296
|
+
"Latency Avg (ms)": 110.15,
|
|
297
|
+
"Min (ms)": 107.45,
|
|
298
|
+
"Max (ms)": 116.24,
|
|
299
|
+
"Stability": "±0.8%"
|
|
300
300
|
},
|
|
301
301
|
{
|
|
302
302
|
"Test Case": "100,000 navigable TreeSet (Node)",
|
|
303
|
-
"Latency Avg (ms)":
|
|
304
|
-
"Min (ms)":
|
|
305
|
-
"Max (ms)":
|
|
306
|
-
"Stability": "±
|
|
303
|
+
"Latency Avg (ms)": 106.73,
|
|
304
|
+
"Min (ms)": 103.46,
|
|
305
|
+
"Max (ms)": 114.13,
|
|
306
|
+
"Stability": "±1.03%"
|
|
307
307
|
},
|
|
308
308
|
{
|
|
309
309
|
"Test Case": "100,000 build+rangeSearch TreeSet",
|
|
310
|
-
"Latency Avg (ms)":
|
|
311
|
-
"Min (ms)":
|
|
312
|
-
"Max (ms)":
|
|
313
|
-
"Stability": "±
|
|
310
|
+
"Latency Avg (ms)": 1059.08,
|
|
311
|
+
"Min (ms)": 1036.84,
|
|
312
|
+
"Max (ms)": 1083.08,
|
|
313
|
+
"Stability": "±1.61%"
|
|
314
314
|
},
|
|
315
315
|
{
|
|
316
316
|
"Test Case": "100,000 build+rangeSearch TreeSet (Node)",
|
|
317
|
-
"Latency Avg (ms)":
|
|
318
|
-
"Min (ms)":
|
|
319
|
-
"Max (ms)":
|
|
320
|
-
"Stability": "±
|
|
317
|
+
"Latency Avg (ms)": 929.91,
|
|
318
|
+
"Min (ms)": 906.75,
|
|
319
|
+
"Max (ms)": 960.4,
|
|
320
|
+
"Stability": "±2.43%"
|
|
321
321
|
},
|
|
322
322
|
{
|
|
323
323
|
"Test Case": "100,000 build+navigable TreeSet",
|
|
324
|
-
"Latency Avg (ms)":
|
|
325
|
-
"Min (ms)":
|
|
326
|
-
"Max (ms)": 1738.
|
|
327
|
-
"Stability": "±
|
|
324
|
+
"Latency Avg (ms)": 1201.07,
|
|
325
|
+
"Min (ms)": 1103.44,
|
|
326
|
+
"Max (ms)": 1738.74,
|
|
327
|
+
"Stability": "±18.27%"
|
|
328
328
|
},
|
|
329
329
|
{
|
|
330
330
|
"Test Case": "100,000 build+navigable TreeSet (Node)",
|
|
331
|
-
"Latency Avg (ms)":
|
|
332
|
-
"Min (ms)":
|
|
333
|
-
"Max (ms)":
|
|
334
|
-
"Stability": "±
|
|
331
|
+
"Latency Avg (ms)": 1004.24,
|
|
332
|
+
"Min (ms)": 994.89,
|
|
333
|
+
"Max (ms)": 1017.57,
|
|
334
|
+
"Stability": "±0.79%"
|
|
335
335
|
}
|
|
336
336
|
],
|
|
337
|
-
"runTime":
|
|
338
|
-
"file": "/Users/revone
|
|
337
|
+
"runTime": 287.21,
|
|
338
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/tree-set.test.mjs"
|
|
339
339
|
},
|
|
340
340
|
{
|
|
341
341
|
"testName": "tree-multi-map",
|
|
342
342
|
"benchmarks": [
|
|
343
343
|
{
|
|
344
344
|
"Test Case": "1,000,000 add (TreeMultiMap, bucketed)",
|
|
345
|
-
"Latency Avg (ms)":
|
|
346
|
-
"Min (ms)":
|
|
347
|
-
"Max (ms)":
|
|
348
|
-
"Stability": "±
|
|
345
|
+
"Latency Avg (ms)": 388.73,
|
|
346
|
+
"Min (ms)": 379.76,
|
|
347
|
+
"Max (ms)": 397.83,
|
|
348
|
+
"Stability": "±1.15%"
|
|
349
349
|
},
|
|
350
350
|
{
|
|
351
351
|
"Test Case": "1,000,000 has-only (TreeMultiMap)",
|
|
352
|
-
"Latency Avg (ms)":
|
|
353
|
-
"Min (ms)":
|
|
354
|
-
"Max (ms)":
|
|
355
|
-
"Stability": "±0.
|
|
352
|
+
"Latency Avg (ms)": 30.79,
|
|
353
|
+
"Min (ms)": 29.68,
|
|
354
|
+
"Max (ms)": 32.17,
|
|
355
|
+
"Stability": "±0.66%"
|
|
356
356
|
},
|
|
357
357
|
{
|
|
358
358
|
"Test Case": "1,000,000 get-only (TreeMultiMap)",
|
|
359
|
-
"Latency Avg (ms)":
|
|
360
|
-
"Min (ms)":
|
|
361
|
-
"Max (ms)":
|
|
362
|
-
"Stability": "±
|
|
359
|
+
"Latency Avg (ms)": 73.67,
|
|
360
|
+
"Min (ms)": 71.02,
|
|
361
|
+
"Max (ms)": 78.12,
|
|
362
|
+
"Stability": "±0.81%"
|
|
363
363
|
},
|
|
364
364
|
{
|
|
365
365
|
"Test Case": "1,000,000 count-only (TreeMultiMap)",
|
|
366
|
-
"Latency Avg (ms)":
|
|
367
|
-
"Min (ms)":
|
|
368
|
-
"Max (ms)":
|
|
369
|
-
"Stability": "±2.
|
|
366
|
+
"Latency Avg (ms)": 206.68,
|
|
367
|
+
"Min (ms)": 196.04,
|
|
368
|
+
"Max (ms)": 240.2,
|
|
369
|
+
"Stability": "±2.87%"
|
|
370
370
|
},
|
|
371
371
|
{
|
|
372
372
|
"Test Case": "1,000,000 build+has (TreeMultiMap)",
|
|
373
|
-
"Latency Avg (ms)":
|
|
374
|
-
"Min (ms)":
|
|
375
|
-
"Max (ms)":
|
|
376
|
-
"Stability": "±
|
|
373
|
+
"Latency Avg (ms)": 452.55,
|
|
374
|
+
"Min (ms)": 405.87,
|
|
375
|
+
"Max (ms)": 605.82,
|
|
376
|
+
"Stability": "±10.59%"
|
|
377
377
|
},
|
|
378
378
|
{
|
|
379
379
|
"Test Case": "1,000,000 build+get (TreeMultiMap)",
|
|
380
|
-
"Latency Avg (ms)":
|
|
381
|
-
"Min (ms)":
|
|
382
|
-
"Max (ms)":
|
|
383
|
-
"Stability": "±
|
|
380
|
+
"Latency Avg (ms)": 477.45,
|
|
381
|
+
"Min (ms)": 448.38,
|
|
382
|
+
"Max (ms)": 613.55,
|
|
383
|
+
"Stability": "±7.26%"
|
|
384
384
|
},
|
|
385
385
|
{
|
|
386
386
|
"Test Case": "100,000 hasEntry (TreeMultiMap, Object.is)",
|
|
387
|
-
"Latency Avg (ms)":
|
|
388
|
-
"Min (ms)":
|
|
389
|
-
"Max (ms)":
|
|
390
|
-
"Stability": "±
|
|
387
|
+
"Latency Avg (ms)": 450.09,
|
|
388
|
+
"Min (ms)": 420.59,
|
|
389
|
+
"Max (ms)": 526.53,
|
|
390
|
+
"Stability": "±6.07%"
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"Test Case": "100,000 deleteValue (TreeMultiMap, Object.is)",
|
|
394
|
-
"Latency Avg (ms)":
|
|
395
|
-
"Min (ms)":
|
|
396
|
-
"Max (ms)":
|
|
397
|
-
"Stability": "±
|
|
394
|
+
"Latency Avg (ms)": 435.96,
|
|
395
|
+
"Min (ms)": 425.2,
|
|
396
|
+
"Max (ms)": 480.98,
|
|
397
|
+
"Stability": "±2.72%"
|
|
398
398
|
},
|
|
399
399
|
{
|
|
400
400
|
"Test Case": "100,000 firstEntry/lastEntry (TreeMultiMap)",
|
|
@@ -412,952 +412,952 @@
|
|
|
412
412
|
},
|
|
413
413
|
{
|
|
414
414
|
"Test Case": "1,000,000 bucket iteration (TreeMultiMap)",
|
|
415
|
-
"Latency Avg (ms)": 28.
|
|
416
|
-
"Min (ms)":
|
|
417
|
-
"Max (ms)": 29.
|
|
418
|
-
"Stability": "±0.
|
|
415
|
+
"Latency Avg (ms)": 28.09,
|
|
416
|
+
"Min (ms)": 26.9,
|
|
417
|
+
"Max (ms)": 29.48,
|
|
418
|
+
"Stability": "±0.62%"
|
|
419
419
|
},
|
|
420
420
|
{
|
|
421
421
|
"Test Case": "1,000,000 flatEntries iteration (TreeMultiMap)",
|
|
422
|
-
"Latency Avg (ms)": 135.
|
|
423
|
-
"Min (ms)":
|
|
424
|
-
"Max (ms)":
|
|
425
|
-
"Stability": "±0.
|
|
422
|
+
"Latency Avg (ms)": 135.75,
|
|
423
|
+
"Min (ms)": 132.38,
|
|
424
|
+
"Max (ms)": 142.79,
|
|
425
|
+
"Stability": "±0.7%"
|
|
426
426
|
},
|
|
427
427
|
{
|
|
428
428
|
"Test Case": "1,000,000 size property (TreeMultiMap)",
|
|
429
429
|
"Latency Avg (ms)": 0,
|
|
430
430
|
"Min (ms)": 0,
|
|
431
431
|
"Max (ms)": 0,
|
|
432
|
-
"Stability": "±3.
|
|
432
|
+
"Stability": "±3.77%"
|
|
433
433
|
},
|
|
434
434
|
{
|
|
435
435
|
"Test Case": "1,000,000 totalSize property (TreeMultiMap)",
|
|
436
|
-
"Latency Avg (ms)":
|
|
437
|
-
"Min (ms)":
|
|
438
|
-
"Max (ms)":
|
|
439
|
-
"Stability": "±
|
|
436
|
+
"Latency Avg (ms)": 27.13,
|
|
437
|
+
"Min (ms)": 25.8,
|
|
438
|
+
"Max (ms)": 30.75,
|
|
439
|
+
"Stability": "±0.87%"
|
|
440
440
|
}
|
|
441
441
|
],
|
|
442
|
-
"runTime":
|
|
443
|
-
"file": "/Users/revone
|
|
442
|
+
"runTime": 87.77,
|
|
443
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/tree-multi-map.test.mjs"
|
|
444
444
|
},
|
|
445
445
|
{
|
|
446
446
|
"testName": "tree-multi-set",
|
|
447
447
|
"benchmarks": [
|
|
448
448
|
{
|
|
449
449
|
"Test Case": "1,000,000 add (TreeMultiSet, expanded iteration)",
|
|
450
|
-
"Latency Avg (ms)":
|
|
451
|
-
"Min (ms)":
|
|
452
|
-
"Max (ms)":
|
|
453
|
-
"Stability": "±
|
|
450
|
+
"Latency Avg (ms)": 233.76,
|
|
451
|
+
"Min (ms)": 221.86,
|
|
452
|
+
"Max (ms)": 263.58,
|
|
453
|
+
"Stability": "±2.47%"
|
|
454
454
|
},
|
|
455
455
|
{
|
|
456
456
|
"Test Case": "1,000,000 has-only (TreeMultiSet)",
|
|
457
|
-
"Latency Avg (ms)":
|
|
458
|
-
"Min (ms)":
|
|
459
|
-
"Max (ms)":
|
|
460
|
-
"Stability": "±1.
|
|
457
|
+
"Latency Avg (ms)": 130.14,
|
|
458
|
+
"Min (ms)": 123.61,
|
|
459
|
+
"Max (ms)": 139.99,
|
|
460
|
+
"Stability": "±1.51%"
|
|
461
461
|
},
|
|
462
462
|
{
|
|
463
463
|
"Test Case": "1,000,000 count-only (TreeMultiSet)",
|
|
464
|
-
"Latency Avg (ms)":
|
|
465
|
-
"Min (ms)":
|
|
466
|
-
"Max (ms)":
|
|
467
|
-
"Stability": "±
|
|
464
|
+
"Latency Avg (ms)": 73.21,
|
|
465
|
+
"Min (ms)": 70.53,
|
|
466
|
+
"Max (ms)": 83.71,
|
|
467
|
+
"Stability": "±1.1%"
|
|
468
468
|
},
|
|
469
469
|
{
|
|
470
470
|
"Test Case": "1,000,000 build+has (TreeMultiSet)",
|
|
471
|
-
"Latency Avg (ms)":
|
|
472
|
-
"Min (ms)":
|
|
473
|
-
"Max (ms)":
|
|
474
|
-
"Stability": "±2.
|
|
471
|
+
"Latency Avg (ms)": 368.22,
|
|
472
|
+
"Min (ms)": 354.26,
|
|
473
|
+
"Max (ms)": 387.34,
|
|
474
|
+
"Stability": "±2.15%"
|
|
475
475
|
},
|
|
476
476
|
{
|
|
477
477
|
"Test Case": "1,000,000 build+count (TreeMultiSet)",
|
|
478
|
-
"Latency Avg (ms)":
|
|
479
|
-
"Min (ms)":
|
|
480
|
-
"Max (ms)":
|
|
481
|
-
"Stability": "±
|
|
478
|
+
"Latency Avg (ms)": 307.33,
|
|
479
|
+
"Min (ms)": 295.46,
|
|
480
|
+
"Max (ms)": 324.15,
|
|
481
|
+
"Stability": "±1.58%"
|
|
482
482
|
},
|
|
483
483
|
{
|
|
484
484
|
"Test Case": "100,000 delete-one (TreeMultiSet)",
|
|
485
|
-
"Latency Avg (ms)":
|
|
486
|
-
"Min (ms)":
|
|
487
|
-
"Max (ms)":
|
|
488
|
-
"Stability": "±
|
|
485
|
+
"Latency Avg (ms)": 246.79,
|
|
486
|
+
"Min (ms)": 233.35,
|
|
487
|
+
"Max (ms)": 270.91,
|
|
488
|
+
"Stability": "±2.28%"
|
|
489
489
|
},
|
|
490
490
|
{
|
|
491
491
|
"Test Case": "100,000 setCount (TreeMultiSet)",
|
|
492
|
-
"Latency Avg (ms)":
|
|
493
|
-
"Min (ms)":
|
|
494
|
-
"Max (ms)":
|
|
495
|
-
"Stability": "±
|
|
492
|
+
"Latency Avg (ms)": 251.85,
|
|
493
|
+
"Min (ms)": 229.99,
|
|
494
|
+
"Max (ms)": 383.39,
|
|
495
|
+
"Stability": "±8.13%"
|
|
496
496
|
},
|
|
497
497
|
{
|
|
498
498
|
"Test Case": "1,000,000 expanded iteration (TreeMultiSet)",
|
|
499
|
-
"Latency Avg (ms)":
|
|
500
|
-
"Min (ms)":
|
|
501
|
-
"Max (ms)": 65.
|
|
502
|
-
"Stability": "±0.
|
|
499
|
+
"Latency Avg (ms)": 59.63,
|
|
500
|
+
"Min (ms)": 57.28,
|
|
501
|
+
"Max (ms)": 65.64,
|
|
502
|
+
"Stability": "±0.76%"
|
|
503
503
|
},
|
|
504
504
|
{
|
|
505
505
|
"Test Case": "1,000,000 entries view (TreeMultiSet)",
|
|
506
|
-
"Latency Avg (ms)":
|
|
507
|
-
"Min (ms)": 19.
|
|
508
|
-
"Max (ms)":
|
|
509
|
-
"Stability": "±0.
|
|
506
|
+
"Latency Avg (ms)": 19.68,
|
|
507
|
+
"Min (ms)": 19.18,
|
|
508
|
+
"Max (ms)": 20.91,
|
|
509
|
+
"Stability": "±0.45%"
|
|
510
510
|
},
|
|
511
511
|
{
|
|
512
512
|
"Test Case": "1,000,000 size property (TreeMultiSet)",
|
|
513
513
|
"Latency Avg (ms)": 0,
|
|
514
514
|
"Min (ms)": 0,
|
|
515
515
|
"Max (ms)": 0,
|
|
516
|
-
"Stability": "±
|
|
516
|
+
"Stability": "±2.77%"
|
|
517
517
|
},
|
|
518
518
|
{
|
|
519
519
|
"Test Case": "1,000,000 distinctSize property (TreeMultiSet)",
|
|
520
520
|
"Latency Avg (ms)": 0,
|
|
521
521
|
"Min (ms)": 0,
|
|
522
522
|
"Max (ms)": 0,
|
|
523
|
-
"Stability": "±
|
|
523
|
+
"Stability": "±2.63%"
|
|
524
524
|
}
|
|
525
525
|
],
|
|
526
|
-
"runTime":
|
|
527
|
-
"file": "/Users/revone
|
|
526
|
+
"runTime": 73.31,
|
|
527
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/tree-multi-set.test.mjs"
|
|
528
528
|
},
|
|
529
529
|
{
|
|
530
530
|
"testName": "doubly-linked-list",
|
|
531
531
|
"benchmarks": [
|
|
532
532
|
{
|
|
533
533
|
"Test Case": "100k push",
|
|
534
|
-
"Latency Avg (ms)":
|
|
535
|
-
"Min (ms)":
|
|
536
|
-
"Max (ms)":
|
|
537
|
-
"Stability": "±
|
|
534
|
+
"Latency Avg (ms)": 5.1068,
|
|
535
|
+
"Min (ms)": 4.2918,
|
|
536
|
+
"Max (ms)": 14.02,
|
|
537
|
+
"Stability": "±6.05%"
|
|
538
538
|
},
|
|
539
539
|
{
|
|
540
540
|
"Test Case": "Native JS Array 100k push",
|
|
541
|
-
"Latency Avg (ms)":
|
|
542
|
-
"Min (ms)": 1.
|
|
543
|
-
"Max (ms)":
|
|
544
|
-
"Stability": "±1.
|
|
541
|
+
"Latency Avg (ms)": 1.9327,
|
|
542
|
+
"Min (ms)": 1.7763,
|
|
543
|
+
"Max (ms)": 3.1571,
|
|
544
|
+
"Stability": "±1.84%"
|
|
545
545
|
},
|
|
546
546
|
{
|
|
547
547
|
"Test Case": "100k unshift",
|
|
548
|
-
"Latency Avg (ms)":
|
|
549
|
-
"Min (ms)":
|
|
550
|
-
"Max (ms)":
|
|
551
|
-
"Stability": "±
|
|
548
|
+
"Latency Avg (ms)": 5.6251,
|
|
549
|
+
"Min (ms)": 4.6454,
|
|
550
|
+
"Max (ms)": 15.9079,
|
|
551
|
+
"Stability": "±7%"
|
|
552
552
|
},
|
|
553
553
|
{
|
|
554
554
|
"Test Case": "Native JS Array 100k unshift",
|
|
555
|
-
"Latency Avg (ms)":
|
|
556
|
-
"Min (ms)":
|
|
557
|
-
"Max (ms)":
|
|
558
|
-
"Stability": "±
|
|
555
|
+
"Latency Avg (ms)": 897.47,
|
|
556
|
+
"Min (ms)": 883.51,
|
|
557
|
+
"Max (ms)": 910.2,
|
|
558
|
+
"Stability": "±1.04%"
|
|
559
559
|
},
|
|
560
560
|
{
|
|
561
561
|
"Test Case": "100k unshift & shift",
|
|
562
|
-
"Latency Avg (ms)":
|
|
563
|
-
"Min (ms)":
|
|
564
|
-
"Max (ms)": 4.
|
|
565
|
-
"Stability": "±0.
|
|
562
|
+
"Latency Avg (ms)": 3.9617,
|
|
563
|
+
"Min (ms)": 3.858,
|
|
564
|
+
"Max (ms)": 4.1419,
|
|
565
|
+
"Stability": "±0.33%"
|
|
566
566
|
},
|
|
567
567
|
{
|
|
568
568
|
"Test Case": "Native JS Array 100k unshift & shift",
|
|
569
|
-
"Latency Avg (ms)":
|
|
570
|
-
"Min (ms)":
|
|
571
|
-
"Max (ms)":
|
|
572
|
-
"Stability": "±
|
|
569
|
+
"Latency Avg (ms)": 2229.86,
|
|
570
|
+
"Min (ms)": 1910.81,
|
|
571
|
+
"Max (ms)": 2501.4,
|
|
572
|
+
"Stability": "±8.86%"
|
|
573
573
|
},
|
|
574
574
|
{
|
|
575
575
|
"Test Case": "100k addAt(mid)",
|
|
576
|
-
"Latency Avg (ms)":
|
|
577
|
-
"Min (ms)":
|
|
578
|
-
"Max (ms)":
|
|
579
|
-
"Stability": "±
|
|
576
|
+
"Latency Avg (ms)": 1377.93,
|
|
577
|
+
"Min (ms)": 1195.1,
|
|
578
|
+
"Max (ms)": 1652.06,
|
|
579
|
+
"Stability": "±15.36%"
|
|
580
580
|
},
|
|
581
581
|
{
|
|
582
582
|
"Test Case": "100k addBefore (cursor)",
|
|
583
|
-
"Latency Avg (ms)": 6.
|
|
584
|
-
"Min (ms)": 5.
|
|
585
|
-
"Max (ms)":
|
|
586
|
-
"Stability": "±
|
|
583
|
+
"Latency Avg (ms)": 6.8479,
|
|
584
|
+
"Min (ms)": 5.236,
|
|
585
|
+
"Max (ms)": 32.4613,
|
|
586
|
+
"Stability": "±14.75%"
|
|
587
587
|
},
|
|
588
588
|
{
|
|
589
589
|
"Test Case": "100k push (js-sdsl)",
|
|
590
|
-
"Latency Avg (ms)": 1.
|
|
591
|
-
"Min (ms)": 1.
|
|
592
|
-
"Max (ms)":
|
|
593
|
-
"Stability": "±
|
|
590
|
+
"Latency Avg (ms)": 1.9662,
|
|
591
|
+
"Min (ms)": 1.0558,
|
|
592
|
+
"Max (ms)": 6.8308,
|
|
593
|
+
"Stability": "±15.44%"
|
|
594
594
|
},
|
|
595
595
|
{
|
|
596
596
|
"Test Case": "100k unshift (js-sdsl)",
|
|
597
|
-
"Latency Avg (ms)": 1.
|
|
598
|
-
"Min (ms)": 1.
|
|
599
|
-
"Max (ms)":
|
|
600
|
-
"Stability": "±10.
|
|
597
|
+
"Latency Avg (ms)": 1.6535,
|
|
598
|
+
"Min (ms)": 1.0118,
|
|
599
|
+
"Max (ms)": 3.925,
|
|
600
|
+
"Stability": "±10.01%"
|
|
601
601
|
},
|
|
602
602
|
{
|
|
603
603
|
"Test Case": "100k unshift & shift (js-sdsl)",
|
|
604
|
-
"Latency Avg (ms)":
|
|
605
|
-
"Min (ms)": 1.
|
|
606
|
-
"Max (ms)":
|
|
607
|
-
"Stability": "±
|
|
604
|
+
"Latency Avg (ms)": 1.9021,
|
|
605
|
+
"Min (ms)": 1.6716,
|
|
606
|
+
"Max (ms)": 3.2611,
|
|
607
|
+
"Stability": "±1.83%"
|
|
608
608
|
}
|
|
609
609
|
],
|
|
610
|
-
"runTime":
|
|
611
|
-
"file": "/Users/revone
|
|
610
|
+
"runTime": 100.81,
|
|
611
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/linked-list/doubly-linked-list.test.mjs"
|
|
612
612
|
},
|
|
613
613
|
{
|
|
614
614
|
"testName": "singly-linked-list",
|
|
615
615
|
"benchmarks": [
|
|
616
616
|
{
|
|
617
617
|
"Test Case": "100K unshift & shift",
|
|
618
|
-
"Latency Avg (ms)":
|
|
619
|
-
"Min (ms)": 3.
|
|
620
|
-
"Max (ms)":
|
|
621
|
-
"Stability": "±
|
|
618
|
+
"Latency Avg (ms)": 3.657,
|
|
619
|
+
"Min (ms)": 3.5484,
|
|
620
|
+
"Max (ms)": 4.0251,
|
|
621
|
+
"Stability": "±0.46%"
|
|
622
622
|
},
|
|
623
623
|
{
|
|
624
624
|
"Test Case": "Native JS Array 100K unshift & shift",
|
|
625
|
-
"Latency Avg (ms)":
|
|
626
|
-
"Min (ms)":
|
|
627
|
-
"Max (ms)":
|
|
628
|
-
"Stability": "±
|
|
625
|
+
"Latency Avg (ms)": 1954.99,
|
|
626
|
+
"Min (ms)": 1825.39,
|
|
627
|
+
"Max (ms)": 2144.21,
|
|
628
|
+
"Stability": "±6.46%"
|
|
629
629
|
},
|
|
630
630
|
{
|
|
631
631
|
"Test Case": "10K unshift & shift",
|
|
632
|
-
"Latency Avg (ms)": 0.
|
|
633
|
-
"Min (ms)": 0.
|
|
634
|
-
"Max (ms)": 0.
|
|
635
|
-
"Stability": "±
|
|
632
|
+
"Latency Avg (ms)": 0.3519,
|
|
633
|
+
"Min (ms)": 0.345,
|
|
634
|
+
"Max (ms)": 0.3897,
|
|
635
|
+
"Stability": "±0.37%"
|
|
636
636
|
},
|
|
637
637
|
{
|
|
638
638
|
"Test Case": "Native JS Array 10K unshift & shift",
|
|
639
|
-
"Latency Avg (ms)":
|
|
640
|
-
"Min (ms)":
|
|
641
|
-
"Max (ms)":
|
|
642
|
-
"Stability": "±
|
|
639
|
+
"Latency Avg (ms)": 6.3455,
|
|
640
|
+
"Min (ms)": 6.0844,
|
|
641
|
+
"Max (ms)": 8.1847,
|
|
642
|
+
"Stability": "±1.2%"
|
|
643
643
|
},
|
|
644
644
|
{
|
|
645
645
|
"Test Case": "10K addAt(mid)",
|
|
646
|
-
"Latency Avg (ms)":
|
|
647
|
-
"Min (ms)":
|
|
648
|
-
"Max (ms)":
|
|
649
|
-
"Stability": "±
|
|
646
|
+
"Latency Avg (ms)": 9.6426,
|
|
647
|
+
"Min (ms)": 8.4035,
|
|
648
|
+
"Max (ms)": 13.8878,
|
|
649
|
+
"Stability": "±3.14%"
|
|
650
650
|
},
|
|
651
651
|
{
|
|
652
652
|
"Test Case": "10K addBefore (cursor)",
|
|
653
|
-
"Latency Avg (ms)":
|
|
654
|
-
"Min (ms)":
|
|
655
|
-
"Max (ms)":
|
|
656
|
-
"Stability": "±
|
|
653
|
+
"Latency Avg (ms)": 17.47,
|
|
654
|
+
"Min (ms)": 16.84,
|
|
655
|
+
"Max (ms)": 20.98,
|
|
656
|
+
"Stability": "±1.1%"
|
|
657
657
|
}
|
|
658
658
|
],
|
|
659
|
-
"runTime":
|
|
660
|
-
"file": "/Users/revone
|
|
659
|
+
"runTime": 50.88,
|
|
660
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/linked-list/singly-linked-list.test.mjs"
|
|
661
661
|
},
|
|
662
662
|
{
|
|
663
663
|
"testName": "hash-map",
|
|
664
664
|
"benchmarks": [
|
|
665
665
|
{
|
|
666
666
|
"Test Case": "1M set",
|
|
667
|
-
"Latency Avg (ms)":
|
|
668
|
-
"Min (ms)":
|
|
669
|
-
"Max (ms)":
|
|
670
|
-
"Stability": "±
|
|
667
|
+
"Latency Avg (ms)": 65.43,
|
|
668
|
+
"Min (ms)": 43.78,
|
|
669
|
+
"Max (ms)": 217.35,
|
|
670
|
+
"Stability": "±20.66%"
|
|
671
671
|
},
|
|
672
672
|
{
|
|
673
673
|
"Test Case": "1M set (js-sdsl)",
|
|
674
|
-
"Latency Avg (ms)":
|
|
675
|
-
"Min (ms)":
|
|
676
|
-
"Max (ms)":
|
|
677
|
-
"Stability": "±
|
|
674
|
+
"Latency Avg (ms)": 89.7,
|
|
675
|
+
"Min (ms)": 59.55,
|
|
676
|
+
"Max (ms)": 452.18,
|
|
677
|
+
"Stability": "±25.27%"
|
|
678
678
|
},
|
|
679
679
|
{
|
|
680
680
|
"Test Case": "Native JS Map 1M set",
|
|
681
|
-
"Latency Avg (ms)":
|
|
682
|
-
"Min (ms)":
|
|
683
|
-
"Max (ms)":
|
|
684
|
-
"Stability": "±
|
|
681
|
+
"Latency Avg (ms)": 158.98,
|
|
682
|
+
"Min (ms)": 134.87,
|
|
683
|
+
"Max (ms)": 286.31,
|
|
684
|
+
"Stability": "±8.93%"
|
|
685
685
|
},
|
|
686
686
|
{
|
|
687
687
|
"Test Case": "Native JS Set 1M add",
|
|
688
|
-
"Latency Avg (ms)":
|
|
689
|
-
"Min (ms)":
|
|
690
|
-
"Max (ms)":
|
|
691
|
-
"Stability": "±
|
|
688
|
+
"Latency Avg (ms)": 117.55,
|
|
689
|
+
"Min (ms)": 107.73,
|
|
690
|
+
"Max (ms)": 193.24,
|
|
691
|
+
"Stability": "±6.03%"
|
|
692
692
|
},
|
|
693
693
|
{
|
|
694
694
|
"Test Case": "1M add HashSet (js-sdsl)",
|
|
695
|
-
"Latency Avg (ms)":
|
|
696
|
-
"Min (ms)":
|
|
697
|
-
"Max (ms)":
|
|
698
|
-
"Stability": "±
|
|
695
|
+
"Latency Avg (ms)": 81.63,
|
|
696
|
+
"Min (ms)": 56.29,
|
|
697
|
+
"Max (ms)": 595.88,
|
|
698
|
+
"Stability": "±35.52%"
|
|
699
699
|
},
|
|
700
700
|
{
|
|
701
701
|
"Test Case": "1M set & get",
|
|
702
|
-
"Latency Avg (ms)":
|
|
703
|
-
"Min (ms)":
|
|
704
|
-
"Max (ms)":
|
|
705
|
-
"Stability": "±
|
|
702
|
+
"Latency Avg (ms)": 81.86,
|
|
703
|
+
"Min (ms)": 39.81,
|
|
704
|
+
"Max (ms)": 303.57,
|
|
705
|
+
"Stability": "±19.79%"
|
|
706
706
|
},
|
|
707
707
|
{
|
|
708
708
|
"Test Case": "1M set & get (js-sdsl)",
|
|
709
|
-
"Latency Avg (ms)":
|
|
710
|
-
"Min (ms)":
|
|
711
|
-
"Max (ms)":
|
|
712
|
-
"Stability": "±
|
|
709
|
+
"Latency Avg (ms)": 72.97,
|
|
710
|
+
"Min (ms)": 63.56,
|
|
711
|
+
"Max (ms)": 159.06,
|
|
712
|
+
"Stability": "±7.7%"
|
|
713
713
|
},
|
|
714
714
|
{
|
|
715
715
|
"Test Case": "Native JS Map 1M set & get",
|
|
716
|
-
"Latency Avg (ms)":
|
|
717
|
-
"Min (ms)":
|
|
718
|
-
"Max (ms)":
|
|
719
|
-
"Stability": "±
|
|
716
|
+
"Latency Avg (ms)": 212.83,
|
|
717
|
+
"Min (ms)": 193.59,
|
|
718
|
+
"Max (ms)": 296.22,
|
|
719
|
+
"Stability": "±6.25%"
|
|
720
720
|
},
|
|
721
721
|
{
|
|
722
722
|
"Test Case": "Native JS Set 1M add & has",
|
|
723
|
-
"Latency Avg (ms)":
|
|
724
|
-
"Min (ms)":
|
|
725
|
-
"Max (ms)":
|
|
726
|
-
"Stability": "±
|
|
723
|
+
"Latency Avg (ms)": 179.76,
|
|
724
|
+
"Min (ms)": 156.7,
|
|
725
|
+
"Max (ms)": 260.48,
|
|
726
|
+
"Stability": "±7.4%"
|
|
727
727
|
},
|
|
728
728
|
{
|
|
729
729
|
"Test Case": "1M add & has HashSet (js-sdsl)",
|
|
730
|
-
"Latency Avg (ms)":
|
|
731
|
-
"Min (ms)":
|
|
732
|
-
"Max (ms)":
|
|
733
|
-
"Stability": "±
|
|
730
|
+
"Latency Avg (ms)": 121.96,
|
|
731
|
+
"Min (ms)": 106.91,
|
|
732
|
+
"Max (ms)": 219.1,
|
|
733
|
+
"Stability": "±8.37%"
|
|
734
734
|
},
|
|
735
735
|
{
|
|
736
736
|
"Test Case": "1M ObjKey set & get",
|
|
737
|
-
"Latency Avg (ms)":
|
|
738
|
-
"Min (ms)":
|
|
739
|
-
"Max (ms)":
|
|
740
|
-
"Stability": "±
|
|
737
|
+
"Latency Avg (ms)": 249,
|
|
738
|
+
"Min (ms)": 218.53,
|
|
739
|
+
"Max (ms)": 374.97,
|
|
740
|
+
"Stability": "±11.59%"
|
|
741
741
|
},
|
|
742
742
|
{
|
|
743
743
|
"Test Case": "1M ObjKey set & get (js-sdsl)",
|
|
744
|
-
"Latency Avg (ms)":
|
|
745
|
-
"Min (ms)":
|
|
746
|
-
"Max (ms)":
|
|
747
|
-
"Stability": "±
|
|
744
|
+
"Latency Avg (ms)": 399.01,
|
|
745
|
+
"Min (ms)": 366.77,
|
|
746
|
+
"Max (ms)": 511.32,
|
|
747
|
+
"Stability": "±8.06%"
|
|
748
748
|
},
|
|
749
749
|
{
|
|
750
750
|
"Test Case": "Native JS Map 1M ObjKey set & get",
|
|
751
|
-
"Latency Avg (ms)":
|
|
752
|
-
"Min (ms)":
|
|
753
|
-
"Max (ms)":
|
|
754
|
-
"Stability": "±
|
|
751
|
+
"Latency Avg (ms)": 223.97,
|
|
752
|
+
"Min (ms)": 197.4,
|
|
753
|
+
"Max (ms)": 316.31,
|
|
754
|
+
"Stability": "±10.69%"
|
|
755
755
|
},
|
|
756
756
|
{
|
|
757
757
|
"Test Case": "Native JS Set 1M ObjKey add & has",
|
|
758
|
-
"Latency Avg (ms)":
|
|
759
|
-
"Min (ms)":
|
|
760
|
-
"Max (ms)":
|
|
761
|
-
"Stability": "±
|
|
758
|
+
"Latency Avg (ms)": 187,
|
|
759
|
+
"Min (ms)": 165.54,
|
|
760
|
+
"Max (ms)": 270.67,
|
|
761
|
+
"Stability": "±8.22%"
|
|
762
762
|
}
|
|
763
763
|
],
|
|
764
|
-
"runTime":
|
|
765
|
-
"file": "/Users/revone
|
|
764
|
+
"runTime": 91.21,
|
|
765
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/hash/hash-map.test.mjs"
|
|
766
766
|
},
|
|
767
767
|
{
|
|
768
768
|
"testName": "deque",
|
|
769
769
|
"benchmarks": [
|
|
770
770
|
{
|
|
771
771
|
"Test Case": "1M push",
|
|
772
|
-
"Latency Avg (ms)": 10.
|
|
773
|
-
"Min (ms)":
|
|
774
|
-
"Max (ms)":
|
|
775
|
-
"Stability": "±
|
|
772
|
+
"Latency Avg (ms)": 10.98,
|
|
773
|
+
"Min (ms)": 6.38,
|
|
774
|
+
"Max (ms)": 25.07,
|
|
775
|
+
"Stability": "±9.38%"
|
|
776
776
|
},
|
|
777
777
|
{
|
|
778
778
|
"Test Case": "Native JS Array 1M push",
|
|
779
|
-
"Latency Avg (ms)":
|
|
780
|
-
"Min (ms)":
|
|
781
|
-
"Max (ms)":
|
|
782
|
-
"Stability": "±
|
|
779
|
+
"Latency Avg (ms)": 24.28,
|
|
780
|
+
"Min (ms)": 22.58,
|
|
781
|
+
"Max (ms)": 26.43,
|
|
782
|
+
"Stability": "±1.14%"
|
|
783
783
|
},
|
|
784
784
|
{
|
|
785
785
|
"Test Case": "1M push & pop",
|
|
786
|
-
"Latency Avg (ms)":
|
|
787
|
-
"Min (ms)":
|
|
788
|
-
"Max (ms)":
|
|
789
|
-
"Stability": "±
|
|
786
|
+
"Latency Avg (ms)": 11.56,
|
|
787
|
+
"Min (ms)": 9.77,
|
|
788
|
+
"Max (ms)": 19.2,
|
|
789
|
+
"Stability": "±3.93%"
|
|
790
790
|
},
|
|
791
791
|
{
|
|
792
792
|
"Test Case": "Native JS Array 1M push & pop",
|
|
793
|
-
"Latency Avg (ms)":
|
|
794
|
-
"Min (ms)":
|
|
795
|
-
"Max (ms)":
|
|
796
|
-
"Stability": "±
|
|
793
|
+
"Latency Avg (ms)": 30.68,
|
|
794
|
+
"Min (ms)": 26.39,
|
|
795
|
+
"Max (ms)": 112.88,
|
|
796
|
+
"Stability": "±9.32%"
|
|
797
797
|
},
|
|
798
798
|
{
|
|
799
799
|
"Test Case": "1M push & shift",
|
|
800
|
-
"Latency Avg (ms)":
|
|
801
|
-
"Min (ms)":
|
|
802
|
-
"Max (ms)":
|
|
803
|
-
"Stability": "±
|
|
800
|
+
"Latency Avg (ms)": 10.95,
|
|
801
|
+
"Min (ms)": 10.19,
|
|
802
|
+
"Max (ms)": 30.6,
|
|
803
|
+
"Stability": "±5.09%"
|
|
804
804
|
},
|
|
805
805
|
{
|
|
806
806
|
"Test Case": "100K push & shift",
|
|
807
|
-
"Latency Avg (ms)":
|
|
808
|
-
"Min (ms)": 1.
|
|
809
|
-
"Max (ms)": 3.
|
|
810
|
-
"Stability": "±
|
|
807
|
+
"Latency Avg (ms)": 1.395,
|
|
808
|
+
"Min (ms)": 1.0432,
|
|
809
|
+
"Max (ms)": 3.1726,
|
|
810
|
+
"Stability": "±7.27%"
|
|
811
811
|
},
|
|
812
812
|
{
|
|
813
813
|
"Test Case": "Native JS Array 100K push & shift",
|
|
814
|
-
"Latency Avg (ms)":
|
|
815
|
-
"Min (ms)":
|
|
816
|
-
"Max (ms)":
|
|
817
|
-
"Stability": "±
|
|
814
|
+
"Latency Avg (ms)": 1255.31,
|
|
815
|
+
"Min (ms)": 937.23,
|
|
816
|
+
"Max (ms)": 1575.67,
|
|
817
|
+
"Stability": "±15.22%"
|
|
818
818
|
},
|
|
819
819
|
{
|
|
820
820
|
"Test Case": "100K unshift & shift",
|
|
821
|
-
"Latency Avg (ms)":
|
|
822
|
-
"Min (ms)": 1.
|
|
823
|
-
"Max (ms)":
|
|
824
|
-
"Stability": "±3.
|
|
821
|
+
"Latency Avg (ms)": 1.1966,
|
|
822
|
+
"Min (ms)": 1.0944,
|
|
823
|
+
"Max (ms)": 2.2177,
|
|
824
|
+
"Stability": "±3.18%"
|
|
825
825
|
},
|
|
826
826
|
{
|
|
827
827
|
"Test Case": "Native JS Array 100K unshift & shift",
|
|
828
|
-
"Latency Avg (ms)":
|
|
829
|
-
"Min (ms)":
|
|
830
|
-
"Max (ms)":
|
|
831
|
-
"Stability": "±
|
|
828
|
+
"Latency Avg (ms)": 1980.94,
|
|
829
|
+
"Min (ms)": 1805.19,
|
|
830
|
+
"Max (ms)": 2208.66,
|
|
831
|
+
"Stability": "±9.58%"
|
|
832
832
|
},
|
|
833
833
|
{
|
|
834
834
|
"Test Case": "1M push (js-sdsl)",
|
|
835
|
-
"Latency Avg (ms)":
|
|
836
|
-
"Min (ms)":
|
|
837
|
-
"Max (ms)":
|
|
838
|
-
"Stability": "±
|
|
835
|
+
"Latency Avg (ms)": 7.8495,
|
|
836
|
+
"Min (ms)": 6.1248,
|
|
837
|
+
"Max (ms)": 20.8709,
|
|
838
|
+
"Stability": "±7.45%"
|
|
839
839
|
},
|
|
840
840
|
{
|
|
841
841
|
"Test Case": "1M push & pop (js-sdsl)",
|
|
842
|
-
"Latency Avg (ms)":
|
|
843
|
-
"Min (ms)":
|
|
844
|
-
"Max (ms)":
|
|
845
|
-
"Stability": "±
|
|
842
|
+
"Latency Avg (ms)": 12.14,
|
|
843
|
+
"Min (ms)": 10.19,
|
|
844
|
+
"Max (ms)": 41.99,
|
|
845
|
+
"Stability": "±6.98%"
|
|
846
846
|
},
|
|
847
847
|
{
|
|
848
848
|
"Test Case": "100K push & shift (js-sdsl)",
|
|
849
|
-
"Latency Avg (ms)":
|
|
850
|
-
"Min (ms)": 1.
|
|
851
|
-
"Max (ms)":
|
|
852
|
-
"Stability": "±
|
|
849
|
+
"Latency Avg (ms)": 1.1509,
|
|
850
|
+
"Min (ms)": 1.0663,
|
|
851
|
+
"Max (ms)": 2.3435,
|
|
852
|
+
"Stability": "±3.2%"
|
|
853
853
|
},
|
|
854
854
|
{
|
|
855
855
|
"Test Case": "100K unshift & shift (js-sdsl)",
|
|
856
|
-
"Latency Avg (ms)":
|
|
857
|
-
"Min (ms)": 1.
|
|
858
|
-
"Max (ms)":
|
|
859
|
-
"Stability": "±
|
|
856
|
+
"Latency Avg (ms)": 1.1638,
|
|
857
|
+
"Min (ms)": 1.0932,
|
|
858
|
+
"Max (ms)": 2.4663,
|
|
859
|
+
"Stability": "±3.05%"
|
|
860
860
|
}
|
|
861
861
|
],
|
|
862
|
-
"runTime":
|
|
863
|
-
"file": "/Users/revone
|
|
862
|
+
"runTime": 112.53,
|
|
863
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/queue/deque.test.mjs"
|
|
864
864
|
},
|
|
865
865
|
{
|
|
866
866
|
"testName": "stack",
|
|
867
867
|
"benchmarks": [
|
|
868
868
|
{
|
|
869
869
|
"Test Case": "1M push",
|
|
870
|
-
"Latency Avg (ms)":
|
|
871
|
-
"Min (ms)":
|
|
872
|
-
"Max (ms)":
|
|
873
|
-
"Stability": "±
|
|
870
|
+
"Latency Avg (ms)": 28.46,
|
|
871
|
+
"Min (ms)": 23.99,
|
|
872
|
+
"Max (ms)": 81.05,
|
|
873
|
+
"Stability": "±9.49%"
|
|
874
874
|
},
|
|
875
875
|
{
|
|
876
876
|
"Test Case": "1M push (js-sdsl)",
|
|
877
|
-
"Latency Avg (ms)":
|
|
878
|
-
"Min (ms)":
|
|
879
|
-
"Max (ms)":
|
|
880
|
-
"Stability": "±
|
|
877
|
+
"Latency Avg (ms)": 31.41,
|
|
878
|
+
"Min (ms)": 24.3,
|
|
879
|
+
"Max (ms)": 96.08,
|
|
880
|
+
"Stability": "±12.38%"
|
|
881
881
|
},
|
|
882
882
|
{
|
|
883
883
|
"Test Case": "Native JS Array 1M push",
|
|
884
|
-
"Latency Avg (ms)":
|
|
885
|
-
"Min (ms)":
|
|
886
|
-
"Max (ms)":
|
|
887
|
-
"Stability": "±
|
|
884
|
+
"Latency Avg (ms)": 24.84,
|
|
885
|
+
"Min (ms)": 21.51,
|
|
886
|
+
"Max (ms)": 34.19,
|
|
887
|
+
"Stability": "±2.32%"
|
|
888
888
|
},
|
|
889
889
|
{
|
|
890
890
|
"Test Case": "1M push & pop",
|
|
891
|
-
"Latency Avg (ms)":
|
|
892
|
-
"Min (ms)":
|
|
893
|
-
"Max (ms)":
|
|
894
|
-
"Stability": "±
|
|
891
|
+
"Latency Avg (ms)": 28.99,
|
|
892
|
+
"Min (ms)": 26.58,
|
|
893
|
+
"Max (ms)": 37.31,
|
|
894
|
+
"Stability": "±1.94%"
|
|
895
895
|
},
|
|
896
896
|
{
|
|
897
897
|
"Test Case": "1M push & pop (js-sdsl)",
|
|
898
|
-
"Latency Avg (ms)":
|
|
899
|
-
"Min (ms)":
|
|
900
|
-
"Max (ms)":
|
|
901
|
-
"Stability": "±
|
|
898
|
+
"Latency Avg (ms)": 32.2,
|
|
899
|
+
"Min (ms)": 25.87,
|
|
900
|
+
"Max (ms)": 174.94,
|
|
901
|
+
"Stability": "±15.85%"
|
|
902
902
|
},
|
|
903
903
|
{
|
|
904
904
|
"Test Case": "Native JS Array 1M push & pop",
|
|
905
|
-
"Latency Avg (ms)":
|
|
906
|
-
"Min (ms)":
|
|
907
|
-
"Max (ms)":
|
|
908
|
-
"Stability": "±
|
|
905
|
+
"Latency Avg (ms)": 28.46,
|
|
906
|
+
"Min (ms)": 25.37,
|
|
907
|
+
"Max (ms)": 38.3,
|
|
908
|
+
"Stability": "±1.84%"
|
|
909
909
|
}
|
|
910
910
|
],
|
|
911
|
-
"runTime":
|
|
912
|
-
"file": "/Users/revone
|
|
911
|
+
"runTime": 43.05,
|
|
912
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/stack/stack.test.mjs"
|
|
913
913
|
},
|
|
914
914
|
{
|
|
915
915
|
"testName": "red-black-tree",
|
|
916
916
|
"benchmarks": [
|
|
917
917
|
{
|
|
918
918
|
"Test Case": "1,000,000 get",
|
|
919
|
-
"Latency Avg (ms)":
|
|
920
|
-
"Min (ms)":
|
|
921
|
-
"Max (ms)": 112.
|
|
922
|
-
"Stability": "±
|
|
919
|
+
"Latency Avg (ms)": 98.97,
|
|
920
|
+
"Min (ms)": 83.42,
|
|
921
|
+
"Max (ms)": 112.38,
|
|
922
|
+
"Stability": "±17.87%"
|
|
923
923
|
},
|
|
924
924
|
{
|
|
925
925
|
"Test Case": "1,000,000 get (Node Mode)",
|
|
926
|
-
"Latency Avg (ms)":
|
|
927
|
-
"Min (ms)":
|
|
928
|
-
"Max (ms)":
|
|
929
|
-
"Stability": "±
|
|
926
|
+
"Latency Avg (ms)": 259.04,
|
|
927
|
+
"Min (ms)": 249.78,
|
|
928
|
+
"Max (ms)": 271.26,
|
|
929
|
+
"Stability": "±4.18%"
|
|
930
930
|
},
|
|
931
931
|
{
|
|
932
932
|
"Test Case": "1,000,000 get (js-sdsl)",
|
|
933
|
-
"Latency Avg (ms)":
|
|
934
|
-
"Min (ms)": 134.
|
|
935
|
-
"Max (ms)": 141.
|
|
936
|
-
"Stability": "±2.
|
|
933
|
+
"Latency Avg (ms)": 137.55,
|
|
934
|
+
"Min (ms)": 134.26,
|
|
935
|
+
"Max (ms)": 141.56,
|
|
936
|
+
"Stability": "±2.74%"
|
|
937
937
|
},
|
|
938
938
|
{
|
|
939
939
|
"Test Case": "200,000 rangeSearch SEQ",
|
|
940
|
-
"Latency Avg (ms)":
|
|
941
|
-
"Min (ms)":
|
|
942
|
-
"Max (ms)":
|
|
943
|
-
"Stability": "±
|
|
940
|
+
"Latency Avg (ms)": 1150.86,
|
|
941
|
+
"Min (ms)": 1110.75,
|
|
942
|
+
"Max (ms)": 1213.28,
|
|
943
|
+
"Stability": "±4.92%"
|
|
944
944
|
},
|
|
945
945
|
{
|
|
946
946
|
"Test Case": "200,000 rangeSearch RAND",
|
|
947
|
-
"Latency Avg (ms)":
|
|
948
|
-
"Min (ms)":
|
|
949
|
-
"Max (ms)":
|
|
950
|
-
"Stability": "±
|
|
947
|
+
"Latency Avg (ms)": 1612.65,
|
|
948
|
+
"Min (ms)": 1602.88,
|
|
949
|
+
"Max (ms)": 1627.28,
|
|
950
|
+
"Stability": "±0.81%"
|
|
951
951
|
},
|
|
952
952
|
{
|
|
953
953
|
"Test Case": "1,000,000 upd SEQ",
|
|
954
|
-
"Latency Avg (ms)":
|
|
955
|
-
"Min (ms)":
|
|
956
|
-
"Max (ms)":
|
|
957
|
-
"Stability": "±
|
|
954
|
+
"Latency Avg (ms)": 81.06,
|
|
955
|
+
"Min (ms)": 72.06,
|
|
956
|
+
"Max (ms)": 93.19,
|
|
957
|
+
"Stability": "±13.68%"
|
|
958
958
|
},
|
|
959
959
|
{
|
|
960
960
|
"Test Case": "1,000,000 upd SEQ (Node Mode)",
|
|
961
|
-
"Latency Avg (ms)":
|
|
962
|
-
"Min (ms)":
|
|
963
|
-
"Max (ms)":
|
|
964
|
-
"Stability": "±
|
|
961
|
+
"Latency Avg (ms)": 229.33,
|
|
962
|
+
"Min (ms)": 220.17,
|
|
963
|
+
"Max (ms)": 239.27,
|
|
964
|
+
"Stability": "±3.95%"
|
|
965
965
|
},
|
|
966
966
|
{
|
|
967
967
|
"Test Case": "1,000,000 upd SEQ (js-sdsl)",
|
|
968
|
-
"Latency Avg (ms)":
|
|
969
|
-
"Min (ms)":
|
|
970
|
-
"Max (ms)":
|
|
971
|
-
"Stability": "±
|
|
968
|
+
"Latency Avg (ms)": 174.39,
|
|
969
|
+
"Min (ms)": 101.64,
|
|
970
|
+
"Max (ms)": 212.18,
|
|
971
|
+
"Stability": "±30.06%"
|
|
972
972
|
},
|
|
973
973
|
{
|
|
974
974
|
"Test Case": "1,000,000 upd RAND",
|
|
975
|
-
"Latency Avg (ms)":
|
|
976
|
-
"Min (ms)":
|
|
977
|
-
"Max (ms)":
|
|
978
|
-
"Stability": "±
|
|
975
|
+
"Latency Avg (ms)": 110.29,
|
|
976
|
+
"Min (ms)": 94.89,
|
|
977
|
+
"Max (ms)": 115.77,
|
|
978
|
+
"Stability": "±9.78%"
|
|
979
979
|
},
|
|
980
980
|
{
|
|
981
981
|
"Test Case": "1,000,000 upd RAND (Node Mode)",
|
|
982
|
-
"Latency Avg (ms)":
|
|
983
|
-
"Min (ms)":
|
|
984
|
-
"Max (ms)":
|
|
985
|
-
"Stability": "±1.
|
|
982
|
+
"Latency Avg (ms)": 378.95,
|
|
983
|
+
"Min (ms)": 371.11,
|
|
984
|
+
"Max (ms)": 384.49,
|
|
985
|
+
"Stability": "±1.83%"
|
|
986
986
|
},
|
|
987
987
|
{
|
|
988
988
|
"Test Case": "1,000,000 upd RAND (js-sdsl)",
|
|
989
|
-
"Latency Avg (ms)":
|
|
990
|
-
"Min (ms)":
|
|
991
|
-
"Max (ms)":
|
|
992
|
-
"Stability": "±
|
|
989
|
+
"Latency Avg (ms)": 301.59,
|
|
990
|
+
"Min (ms)": 292.13,
|
|
991
|
+
"Max (ms)": 311.27,
|
|
992
|
+
"Stability": "±3.01%"
|
|
993
993
|
},
|
|
994
994
|
{
|
|
995
995
|
"Test Case": "1,000,000 ins SEQ",
|
|
996
|
-
"Latency Avg (ms)":
|
|
997
|
-
"Min (ms)":
|
|
998
|
-
"Max (ms)":
|
|
999
|
-
"Stability": "±
|
|
996
|
+
"Latency Avg (ms)": 544.99,
|
|
997
|
+
"Min (ms)": 461.28,
|
|
998
|
+
"Max (ms)": 864.21,
|
|
999
|
+
"Stability": "±40.65%"
|
|
1000
1000
|
},
|
|
1001
1001
|
{
|
|
1002
1002
|
"Test Case": "1,000,000 ins SEQ (Node Mode)",
|
|
1003
|
-
"Latency Avg (ms)":
|
|
1004
|
-
"Min (ms)":
|
|
1005
|
-
"Max (ms)":
|
|
1006
|
-
"Stability": "±
|
|
1003
|
+
"Latency Avg (ms)": 194,
|
|
1004
|
+
"Min (ms)": 189.22,
|
|
1005
|
+
"Max (ms)": 198.17,
|
|
1006
|
+
"Stability": "±2.79%"
|
|
1007
1007
|
},
|
|
1008
1008
|
{
|
|
1009
1009
|
"Test Case": "1,000,000 ins SEQ (js-sdsl)",
|
|
1010
|
-
"Latency Avg (ms)":
|
|
1011
|
-
"Min (ms)":
|
|
1012
|
-
"Max (ms)":
|
|
1013
|
-
"Stability": "±
|
|
1010
|
+
"Latency Avg (ms)": 86.56,
|
|
1011
|
+
"Min (ms)": 78.21,
|
|
1012
|
+
"Max (ms)": 93.44,
|
|
1013
|
+
"Stability": "±7.90%"
|
|
1014
1014
|
},
|
|
1015
1015
|
{
|
|
1016
1016
|
"Test Case": "1,000,000 ins RAND",
|
|
1017
|
-
"Latency Avg (ms)":
|
|
1018
|
-
"Min (ms)":
|
|
1019
|
-
"Max (ms)":
|
|
1020
|
-
"Stability": "±1.
|
|
1017
|
+
"Latency Avg (ms)": 1025.93,
|
|
1018
|
+
"Min (ms)": 1008.09,
|
|
1019
|
+
"Max (ms)": 1040.16,
|
|
1020
|
+
"Stability": "±1.56%"
|
|
1021
1021
|
},
|
|
1022
1022
|
{
|
|
1023
1023
|
"Test Case": "1,000,000 ins RAND (Node Mode)",
|
|
1024
|
-
"Latency Avg (ms)":
|
|
1025
|
-
"Min (ms)":
|
|
1026
|
-
"Max (ms)":
|
|
1027
|
-
"Stability": "±0.
|
|
1024
|
+
"Latency Avg (ms)": 906.98,
|
|
1025
|
+
"Min (ms)": 898.92,
|
|
1026
|
+
"Max (ms)": 914.62,
|
|
1027
|
+
"Stability": "±0.79%"
|
|
1028
1028
|
},
|
|
1029
1029
|
{
|
|
1030
1030
|
"Test Case": "1,000,000 ins RAND (js-sdsl)",
|
|
1031
|
-
"Latency Avg (ms)":
|
|
1032
|
-
"Min (ms)":
|
|
1033
|
-
"Max (ms)":
|
|
1034
|
-
"Stability": "±3.
|
|
1031
|
+
"Latency Avg (ms)": 636.16,
|
|
1032
|
+
"Min (ms)": 615.46,
|
|
1033
|
+
"Max (ms)": 656.61,
|
|
1034
|
+
"Stability": "±3.66%"
|
|
1035
1035
|
},
|
|
1036
1036
|
{
|
|
1037
1037
|
"Test Case": "1,000,000 keys-only",
|
|
1038
|
-
"Latency Avg (ms)":
|
|
1039
|
-
"Min (ms)": 2.
|
|
1040
|
-
"Max (ms)": 5.
|
|
1041
|
-
"Stability": "±
|
|
1038
|
+
"Latency Avg (ms)": 3.8192,
|
|
1039
|
+
"Min (ms)": 2.7242,
|
|
1040
|
+
"Max (ms)": 5.2749,
|
|
1041
|
+
"Stability": "±36.24%"
|
|
1042
1042
|
}
|
|
1043
1043
|
],
|
|
1044
|
-
"runTime":
|
|
1045
|
-
"file": "/Users/revone
|
|
1044
|
+
"runTime": 83.49,
|
|
1045
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/red-black-tree.test.mjs"
|
|
1046
1046
|
},
|
|
1047
1047
|
{
|
|
1048
1048
|
"testName": "avl-tree",
|
|
1049
1049
|
"benchmarks": [
|
|
1050
1050
|
{
|
|
1051
1051
|
"Test Case": "100K add randomly",
|
|
1052
|
-
"Latency Avg (ms)":
|
|
1053
|
-
"Min (ms)": 139.
|
|
1054
|
-
"Max (ms)":
|
|
1055
|
-
"Stability": "±
|
|
1052
|
+
"Latency Avg (ms)": 146.42,
|
|
1053
|
+
"Min (ms)": 139.05,
|
|
1054
|
+
"Max (ms)": 191.55,
|
|
1055
|
+
"Stability": "±3.4%"
|
|
1056
1056
|
},
|
|
1057
1057
|
{
|
|
1058
1058
|
"Test Case": "100K add",
|
|
1059
|
-
"Latency Avg (ms)": 120.
|
|
1060
|
-
"Min (ms)":
|
|
1061
|
-
"Max (ms)":
|
|
1062
|
-
"Stability": "±1.
|
|
1059
|
+
"Latency Avg (ms)": 120.24,
|
|
1060
|
+
"Min (ms)": 114.57,
|
|
1061
|
+
"Max (ms)": 143,
|
|
1062
|
+
"Stability": "±1.83%"
|
|
1063
1063
|
},
|
|
1064
1064
|
{
|
|
1065
1065
|
"Test Case": "100K get",
|
|
1066
|
-
"Latency Avg (ms)": 4.
|
|
1067
|
-
"Min (ms)": 4.
|
|
1068
|
-
"Max (ms)": 5.
|
|
1069
|
-
"Stability": "±1.
|
|
1066
|
+
"Latency Avg (ms)": 4.6116,
|
|
1067
|
+
"Min (ms)": 4.112,
|
|
1068
|
+
"Max (ms)": 5.875,
|
|
1069
|
+
"Stability": "±1.85%"
|
|
1070
1070
|
},
|
|
1071
1071
|
{
|
|
1072
1072
|
"Test Case": "100K getNode",
|
|
1073
|
-
"Latency Avg (ms)":
|
|
1074
|
-
"Min (ms)":
|
|
1075
|
-
"Max (ms)":
|
|
1076
|
-
"Stability": "±
|
|
1073
|
+
"Latency Avg (ms)": 31.34,
|
|
1074
|
+
"Min (ms)": 29.81,
|
|
1075
|
+
"Max (ms)": 36.57,
|
|
1076
|
+
"Stability": "±1.08%"
|
|
1077
1077
|
},
|
|
1078
1078
|
{
|
|
1079
1079
|
"Test Case": "100K iterator",
|
|
1080
|
-
"Latency Avg (ms)": 6.
|
|
1081
|
-
"Min (ms)": 5.
|
|
1082
|
-
"Max (ms)":
|
|
1083
|
-
"Stability": "±1.
|
|
1080
|
+
"Latency Avg (ms)": 6.1388,
|
|
1081
|
+
"Min (ms)": 5.6668,
|
|
1082
|
+
"Max (ms)": 7.466,
|
|
1083
|
+
"Stability": "±1.35%"
|
|
1084
1084
|
},
|
|
1085
1085
|
{
|
|
1086
1086
|
"Test Case": "100K add & delete orderly",
|
|
1087
|
-
"Latency Avg (ms)":
|
|
1088
|
-
"Min (ms)":
|
|
1089
|
-
"Max (ms)":
|
|
1090
|
-
"Stability": "±
|
|
1087
|
+
"Latency Avg (ms)": 180.78,
|
|
1088
|
+
"Min (ms)": 175.71,
|
|
1089
|
+
"Max (ms)": 215.2,
|
|
1090
|
+
"Stability": "±2.45%"
|
|
1091
1091
|
},
|
|
1092
1092
|
{
|
|
1093
1093
|
"Test Case": "100K add & delete randomly",
|
|
1094
|
-
"Latency Avg (ms)":
|
|
1095
|
-
"Min (ms)":
|
|
1096
|
-
"Max (ms)":
|
|
1097
|
-
"Stability": "±1.
|
|
1094
|
+
"Latency Avg (ms)": 218.68,
|
|
1095
|
+
"Min (ms)": 211.13,
|
|
1096
|
+
"Max (ms)": 227.68,
|
|
1097
|
+
"Stability": "±1.05%"
|
|
1098
1098
|
},
|
|
1099
1099
|
{
|
|
1100
1100
|
"Test Case": "AVL Tree 100K rangeSearch queries",
|
|
1101
|
-
"Latency Avg (ms)":
|
|
1102
|
-
"Min (ms)":
|
|
1103
|
-
"Max (ms)":
|
|
1104
|
-
"Stability": "±
|
|
1101
|
+
"Latency Avg (ms)": 1352.3,
|
|
1102
|
+
"Min (ms)": 1333.26,
|
|
1103
|
+
"Max (ms)": 1370.64,
|
|
1104
|
+
"Stability": "±1.12%"
|
|
1105
1105
|
}
|
|
1106
1106
|
],
|
|
1107
|
-
"runTime":
|
|
1108
|
-
"file": "/Users/revone
|
|
1107
|
+
"runTime": 58.79,
|
|
1108
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/avl-tree.test.mjs"
|
|
1109
1109
|
},
|
|
1110
1110
|
{
|
|
1111
1111
|
"testName": "bst",
|
|
1112
1112
|
"benchmarks": [
|
|
1113
1113
|
{
|
|
1114
1114
|
"Test Case": "10,000 add randomly",
|
|
1115
|
-
"Latency Avg (ms)":
|
|
1116
|
-
"Min (ms)": 5.
|
|
1117
|
-
"Max (ms)":
|
|
1118
|
-
"Stability": "±
|
|
1115
|
+
"Latency Avg (ms)": 6.2675,
|
|
1116
|
+
"Min (ms)": 5.7848,
|
|
1117
|
+
"Max (ms)": 8.2385,
|
|
1118
|
+
"Stability": "±1.17%"
|
|
1119
1119
|
},
|
|
1120
1120
|
{
|
|
1121
1121
|
"Test Case": "10,000 add & delete randomly",
|
|
1122
|
-
"Latency Avg (ms)":
|
|
1123
|
-
"Min (ms)":
|
|
1124
|
-
"Max (ms)":
|
|
1125
|
-
"Stability": "±0.
|
|
1122
|
+
"Latency Avg (ms)": 11.03,
|
|
1123
|
+
"Min (ms)": 10.63,
|
|
1124
|
+
"Max (ms)": 13.23,
|
|
1125
|
+
"Stability": "±0.74%"
|
|
1126
1126
|
},
|
|
1127
1127
|
{
|
|
1128
1128
|
"Test Case": "10,000 addMany",
|
|
1129
|
-
"Latency Avg (ms)":
|
|
1130
|
-
"Min (ms)":
|
|
1131
|
-
"Max (ms)":
|
|
1132
|
-
"Stability": "±
|
|
1129
|
+
"Latency Avg (ms)": 11.93,
|
|
1130
|
+
"Min (ms)": 11.12,
|
|
1131
|
+
"Max (ms)": 12.53,
|
|
1132
|
+
"Stability": "±0.66%"
|
|
1133
1133
|
},
|
|
1134
1134
|
{
|
|
1135
1135
|
"Test Case": "10,000 get",
|
|
1136
|
-
"Latency Avg (ms)":
|
|
1137
|
-
"Min (ms)":
|
|
1138
|
-
"Max (ms)":
|
|
1139
|
-
"Stability": "±
|
|
1136
|
+
"Latency Avg (ms)": 16.92,
|
|
1137
|
+
"Min (ms)": 11.35,
|
|
1138
|
+
"Max (ms)": 231.5,
|
|
1139
|
+
"Stability": "±46.92%"
|
|
1140
1140
|
}
|
|
1141
1141
|
],
|
|
1142
|
-
"runTime": 21.
|
|
1143
|
-
"file": "/Users/revone
|
|
1142
|
+
"runTime": 21.62,
|
|
1143
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/bst.test.mjs"
|
|
1144
1144
|
},
|
|
1145
1145
|
{
|
|
1146
1146
|
"testName": "trie",
|
|
1147
1147
|
"benchmarks": [
|
|
1148
1148
|
{
|
|
1149
1149
|
"Test Case": "100,000 add",
|
|
1150
|
-
"Latency Avg (ms)":
|
|
1151
|
-
"Min (ms)":
|
|
1152
|
-
"Max (ms)":
|
|
1153
|
-
"Stability": "±
|
|
1150
|
+
"Latency Avg (ms)": 257.47,
|
|
1151
|
+
"Min (ms)": 82.81,
|
|
1152
|
+
"Max (ms)": 2186.79,
|
|
1153
|
+
"Stability": "±82.38%"
|
|
1154
1154
|
},
|
|
1155
1155
|
{
|
|
1156
1156
|
"Test Case": "100,000 getWords",
|
|
1157
|
-
"Latency Avg (ms)":
|
|
1158
|
-
"Min (ms)":
|
|
1159
|
-
"Max (ms)":
|
|
1160
|
-
"Stability": "±
|
|
1157
|
+
"Latency Avg (ms)": 15858.61,
|
|
1158
|
+
"Min (ms)": 15402.9,
|
|
1159
|
+
"Max (ms)": 16681.99,
|
|
1160
|
+
"Stability": "±4.01%"
|
|
1161
1161
|
}
|
|
1162
1162
|
],
|
|
1163
|
-
"runTime":
|
|
1164
|
-
"file": "/Users/revone
|
|
1163
|
+
"runTime": 166.86,
|
|
1164
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/trie/trie.test.mjs"
|
|
1165
1165
|
},
|
|
1166
1166
|
{
|
|
1167
1167
|
"testName": "directed-graph",
|
|
1168
1168
|
"benchmarks": [
|
|
1169
1169
|
{
|
|
1170
1170
|
"Test Case": "1,000 addVertex",
|
|
1171
|
-
"Latency Avg (ms)": 0.
|
|
1172
|
-
"Min (ms)": 0.
|
|
1173
|
-
"Max (ms)": 0.
|
|
1174
|
-
"Stability": "±
|
|
1171
|
+
"Latency Avg (ms)": 0.0532,
|
|
1172
|
+
"Min (ms)": 0.0492,
|
|
1173
|
+
"Max (ms)": 0.0626,
|
|
1174
|
+
"Stability": "±1%"
|
|
1175
1175
|
},
|
|
1176
1176
|
{
|
|
1177
1177
|
"Test Case": "1,000 addEdge",
|
|
1178
|
-
"Latency Avg (ms)":
|
|
1179
|
-
"Min (ms)":
|
|
1180
|
-
"Max (ms)":
|
|
1181
|
-
"Stability": "±
|
|
1178
|
+
"Latency Avg (ms)": 0,
|
|
1179
|
+
"Min (ms)": null,
|
|
1180
|
+
"Max (ms)": null,
|
|
1181
|
+
"Stability": "±0%"
|
|
1182
1182
|
},
|
|
1183
1183
|
{
|
|
1184
1184
|
"Test Case": "1,000 getVertex",
|
|
1185
|
-
"Latency Avg (ms)":
|
|
1186
|
-
"Min (ms)":
|
|
1187
|
-
"Max (ms)":
|
|
1188
|
-
"Stability": "±0.
|
|
1185
|
+
"Latency Avg (ms)": 38.93,
|
|
1186
|
+
"Min (ms)": 37.39,
|
|
1187
|
+
"Max (ms)": 40.44,
|
|
1188
|
+
"Stability": "±0.4%"
|
|
1189
1189
|
},
|
|
1190
1190
|
{
|
|
1191
1191
|
"Test Case": "1,000 getEdge",
|
|
1192
|
-
"Latency Avg (ms)":
|
|
1193
|
-
"Min (ms)":
|
|
1194
|
-
"Max (ms)":
|
|
1195
|
-
"Stability": "±
|
|
1192
|
+
"Latency Avg (ms)": 77.81,
|
|
1193
|
+
"Min (ms)": 74.74,
|
|
1194
|
+
"Max (ms)": 87.38,
|
|
1195
|
+
"Stability": "±0.78%"
|
|
1196
1196
|
},
|
|
1197
1197
|
{
|
|
1198
1198
|
"Test Case": "tarjan",
|
|
1199
|
-
"Latency Avg (ms)":
|
|
1200
|
-
"Min (ms)":
|
|
1201
|
-
"Max (ms)":
|
|
1202
|
-
"Stability": "±
|
|
1199
|
+
"Latency Avg (ms)": 0.4219,
|
|
1200
|
+
"Min (ms)": 0.3991,
|
|
1201
|
+
"Max (ms)": 0.4419,
|
|
1202
|
+
"Stability": "±0.39%"
|
|
1203
1203
|
},
|
|
1204
1204
|
{
|
|
1205
1205
|
"Test Case": "topologicalSort",
|
|
1206
|
-
"Latency Avg (ms)":
|
|
1207
|
-
"Min (ms)":
|
|
1208
|
-
"Max (ms)":
|
|
1209
|
-
"Stability": "±
|
|
1206
|
+
"Latency Avg (ms)": 0.2641,
|
|
1207
|
+
"Min (ms)": 0.2567,
|
|
1208
|
+
"Max (ms)": 0.2835,
|
|
1209
|
+
"Stability": "±0.48%"
|
|
1210
1210
|
}
|
|
1211
1211
|
],
|
|
1212
|
-
"runTime":
|
|
1213
|
-
"file": "/Users/revone
|
|
1212
|
+
"runTime": 27.72,
|
|
1213
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/graph/directed-graph.test.mjs"
|
|
1214
1214
|
},
|
|
1215
1215
|
{
|
|
1216
1216
|
"testName": "binary-tree",
|
|
1217
1217
|
"benchmarks": [
|
|
1218
1218
|
{
|
|
1219
1219
|
"Test Case": "1,000 add randomly",
|
|
1220
|
-
"Latency Avg (ms)":
|
|
1221
|
-
"Min (ms)": 10.
|
|
1222
|
-
"Max (ms)":
|
|
1223
|
-
"Stability": "±0.
|
|
1220
|
+
"Latency Avg (ms)": 11.09,
|
|
1221
|
+
"Min (ms)": 10.35,
|
|
1222
|
+
"Max (ms)": 13.04,
|
|
1223
|
+
"Stability": "±0.98%"
|
|
1224
1224
|
},
|
|
1225
1225
|
{
|
|
1226
1226
|
"Test Case": "1,000 add & delete randomly",
|
|
1227
|
-
"Latency Avg (ms)": 11.
|
|
1228
|
-
"Min (ms)": 10.
|
|
1229
|
-
"Max (ms)":
|
|
1230
|
-
"Stability": "±
|
|
1227
|
+
"Latency Avg (ms)": 11.2,
|
|
1228
|
+
"Min (ms)": 10.81,
|
|
1229
|
+
"Max (ms)": 11.87,
|
|
1230
|
+
"Stability": "±0.44%"
|
|
1231
1231
|
},
|
|
1232
1232
|
{
|
|
1233
1233
|
"Test Case": "1,000 addMany",
|
|
1234
|
-
"Latency Avg (ms)":
|
|
1235
|
-
"Min (ms)": 10.
|
|
1236
|
-
"Max (ms)":
|
|
1237
|
-
"Stability": "±0.
|
|
1234
|
+
"Latency Avg (ms)": 11.06,
|
|
1235
|
+
"Min (ms)": 10.78,
|
|
1236
|
+
"Max (ms)": 12.88,
|
|
1237
|
+
"Stability": "±0.65%"
|
|
1238
1238
|
},
|
|
1239
1239
|
{
|
|
1240
1240
|
"Test Case": "1,000 get",
|
|
1241
|
-
"Latency Avg (ms)": 11.
|
|
1242
|
-
"Min (ms)": 10.
|
|
1243
|
-
"Max (ms)":
|
|
1244
|
-
"Stability": "±
|
|
1241
|
+
"Latency Avg (ms)": 11.08,
|
|
1242
|
+
"Min (ms)": 10.64,
|
|
1243
|
+
"Max (ms)": 11.76,
|
|
1244
|
+
"Stability": "±0.51%"
|
|
1245
1245
|
},
|
|
1246
1246
|
{
|
|
1247
1247
|
"Test Case": "1,000 has",
|
|
1248
|
-
"Latency Avg (ms)":
|
|
1249
|
-
"Min (ms)": 10.
|
|
1250
|
-
"Max (ms)":
|
|
1251
|
-
"Stability": "±
|
|
1248
|
+
"Latency Avg (ms)": 14.68,
|
|
1249
|
+
"Min (ms)": 10.92,
|
|
1250
|
+
"Max (ms)": 194.04,
|
|
1251
|
+
"Stability": "±46.06%"
|
|
1252
1252
|
},
|
|
1253
1253
|
{
|
|
1254
1254
|
"Test Case": "1,000 dfs",
|
|
1255
|
-
"Latency Avg (ms)":
|
|
1256
|
-
"Min (ms)":
|
|
1257
|
-
"Max (ms)":
|
|
1258
|
-
"Stability": "±0.
|
|
1255
|
+
"Latency Avg (ms)": 108.11,
|
|
1256
|
+
"Min (ms)": 103.04,
|
|
1257
|
+
"Max (ms)": 113.7,
|
|
1258
|
+
"Stability": "±0.75%"
|
|
1259
1259
|
},
|
|
1260
1260
|
{
|
|
1261
1261
|
"Test Case": "1,000 bfs",
|
|
1262
|
-
"Latency Avg (ms)":
|
|
1263
|
-
"Min (ms)":
|
|
1264
|
-
"Max (ms)":
|
|
1265
|
-
"Stability": "±
|
|
1262
|
+
"Latency Avg (ms)": 46.99,
|
|
1263
|
+
"Min (ms)": 45.17,
|
|
1264
|
+
"Max (ms)": 54.89,
|
|
1265
|
+
"Stability": "±1.35%"
|
|
1266
1266
|
},
|
|
1267
1267
|
{
|
|
1268
1268
|
"Test Case": "1,000 morris",
|
|
1269
|
-
"Latency Avg (ms)":
|
|
1270
|
-
"Min (ms)":
|
|
1271
|
-
"Max (ms)":
|
|
1272
|
-
"Stability": "±0.
|
|
1269
|
+
"Latency Avg (ms)": 41.61,
|
|
1270
|
+
"Min (ms)": 39.97,
|
|
1271
|
+
"Max (ms)": 43.66,
|
|
1272
|
+
"Stability": "±0.67%"
|
|
1273
1273
|
}
|
|
1274
1274
|
],
|
|
1275
|
-
"runTime": 44.
|
|
1276
|
-
"file": "/Users/revone
|
|
1275
|
+
"runTime": 44.52,
|
|
1276
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/binary-tree/binary-tree.test.mjs"
|
|
1277
1277
|
},
|
|
1278
1278
|
{
|
|
1279
1279
|
"testName": "priority-queue",
|
|
1280
1280
|
"benchmarks": [
|
|
1281
1281
|
{
|
|
1282
1282
|
"Test Case": "100,000 add",
|
|
1283
|
-
"Latency Avg (ms)": 4.
|
|
1284
|
-
"Min (ms)":
|
|
1285
|
-
"Max (ms)":
|
|
1286
|
-
"Stability": "±
|
|
1283
|
+
"Latency Avg (ms)": 4.5393,
|
|
1284
|
+
"Min (ms)": 3.9926,
|
|
1285
|
+
"Max (ms)": 10.2987,
|
|
1286
|
+
"Stability": "±4.68%"
|
|
1287
1287
|
},
|
|
1288
1288
|
{
|
|
1289
1289
|
"Test Case": "100,000 add (js-sdsl)",
|
|
1290
|
-
"Latency Avg (ms)": 5.
|
|
1291
|
-
"Min (ms)":
|
|
1292
|
-
"Max (ms)":
|
|
1293
|
-
"Stability": "±
|
|
1290
|
+
"Latency Avg (ms)": 5.0825,
|
|
1291
|
+
"Min (ms)": 4.8088,
|
|
1292
|
+
"Max (ms)": 5.9743,
|
|
1293
|
+
"Stability": "±1.06%"
|
|
1294
1294
|
},
|
|
1295
1295
|
{
|
|
1296
1296
|
"Test Case": "100,000 add & poll",
|
|
1297
|
-
"Latency Avg (ms)":
|
|
1298
|
-
"Min (ms)":
|
|
1299
|
-
"Max (ms)":
|
|
1300
|
-
"Stability": "±
|
|
1297
|
+
"Latency Avg (ms)": 22.77,
|
|
1298
|
+
"Min (ms)": 21.62,
|
|
1299
|
+
"Max (ms)": 30.58,
|
|
1300
|
+
"Stability": "±1.49%"
|
|
1301
1301
|
},
|
|
1302
1302
|
{
|
|
1303
1303
|
"Test Case": "100,000 add & poll (js-sdsl)",
|
|
1304
|
-
"Latency Avg (ms)":
|
|
1305
|
-
"Min (ms)":
|
|
1306
|
-
"Max (ms)":
|
|
1307
|
-
"Stability": "±0.
|
|
1304
|
+
"Latency Avg (ms)": 23.18,
|
|
1305
|
+
"Min (ms)": 22.2,
|
|
1306
|
+
"Max (ms)": 25.08,
|
|
1307
|
+
"Stability": "±0.8%"
|
|
1308
1308
|
}
|
|
1309
1309
|
],
|
|
1310
|
-
"runTime": 21.
|
|
1311
|
-
"file": "/Users/revone
|
|
1310
|
+
"runTime": 21.9,
|
|
1311
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/priority-queue/priority-queue.test.mjs"
|
|
1312
1312
|
},
|
|
1313
1313
|
{
|
|
1314
1314
|
"testName": "queue",
|
|
1315
1315
|
"benchmarks": [
|
|
1316
1316
|
{
|
|
1317
1317
|
"Test Case": "1,000,000 push",
|
|
1318
|
-
"Latency Avg (ms)":
|
|
1319
|
-
"Min (ms)":
|
|
1320
|
-
"Max (ms)":
|
|
1321
|
-
"Stability": "±
|
|
1318
|
+
"Latency Avg (ms)": 29.46,
|
|
1319
|
+
"Min (ms)": 25.57,
|
|
1320
|
+
"Max (ms)": 38.92,
|
|
1321
|
+
"Stability": "±2.7%"
|
|
1322
1322
|
},
|
|
1323
1323
|
{
|
|
1324
1324
|
"Test Case": "100,000 push & shift",
|
|
1325
|
-
"Latency Avg (ms)": 3.
|
|
1326
|
-
"Min (ms)": 2.
|
|
1327
|
-
"Max (ms)":
|
|
1328
|
-
"Stability": "±
|
|
1325
|
+
"Latency Avg (ms)": 3.3554,
|
|
1326
|
+
"Min (ms)": 2.9757,
|
|
1327
|
+
"Max (ms)": 8.4665,
|
|
1328
|
+
"Stability": "±3.66%"
|
|
1329
1329
|
},
|
|
1330
1330
|
{
|
|
1331
1331
|
"Test Case": "Native JS Array 1,000,000 push",
|
|
1332
|
-
"Latency Avg (ms)":
|
|
1333
|
-
"Min (ms)":
|
|
1334
|
-
"Max (ms)":
|
|
1335
|
-
"Stability": "±
|
|
1332
|
+
"Latency Avg (ms)": 25.29,
|
|
1333
|
+
"Min (ms)": 22.43,
|
|
1334
|
+
"Max (ms)": 79.02,
|
|
1335
|
+
"Stability": "±7.99%"
|
|
1336
1336
|
},
|
|
1337
1337
|
{
|
|
1338
1338
|
"Test Case": "Native JS Array 100,000 push & shift",
|
|
1339
|
-
"Latency Avg (ms)":
|
|
1340
|
-
"Min (ms)":
|
|
1341
|
-
"Max (ms)":
|
|
1342
|
-
"Stability": "±
|
|
1339
|
+
"Latency Avg (ms)": 1160.09,
|
|
1340
|
+
"Min (ms)": 982.17,
|
|
1341
|
+
"Max (ms)": 1396.24,
|
|
1342
|
+
"Stability": "±16.19%"
|
|
1343
1343
|
},
|
|
1344
1344
|
{
|
|
1345
1345
|
"Test Case": "1,000,000 push (js-sdsl)",
|
|
1346
|
-
"Latency Avg (ms)":
|
|
1347
|
-
"Min (ms)":
|
|
1348
|
-
"Max (ms)":
|
|
1349
|
-
"Stability": "±
|
|
1346
|
+
"Latency Avg (ms)": 33.31,
|
|
1347
|
+
"Min (ms)": 28.7,
|
|
1348
|
+
"Max (ms)": 116.24,
|
|
1349
|
+
"Stability": "±10.52%"
|
|
1350
1350
|
},
|
|
1351
1351
|
{
|
|
1352
1352
|
"Test Case": "100,000 push & shift (js-sdsl)",
|
|
1353
|
-
"Latency Avg (ms)":
|
|
1354
|
-
"Min (ms)": 2.
|
|
1355
|
-
"Max (ms)":
|
|
1356
|
-
"Stability": "±
|
|
1353
|
+
"Latency Avg (ms)": 3.0014,
|
|
1354
|
+
"Min (ms)": 2.4596,
|
|
1355
|
+
"Max (ms)": 15.2711,
|
|
1356
|
+
"Stability": "±11.06%"
|
|
1357
1357
|
}
|
|
1358
1358
|
],
|
|
1359
|
-
"runTime":
|
|
1360
|
-
"file": "/Users/revone
|
|
1359
|
+
"runTime": 51.57,
|
|
1360
|
+
"file": "/Users/revone/projects/data-structure-typed/test/performance/data-structures/queue/queue.test.mjs"
|
|
1361
1361
|
}
|
|
1362
1362
|
],
|
|
1363
1363
|
"native": [
|