@fjell/registry 4.4.9 → 4.4.11
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/dist/Registry.cjs +36 -3
- package/dist/Registry.js +36 -3
- package/dist/RegistryStats.cjs +200 -0
- package/dist/RegistryStats.d.ts +103 -0
- package/dist/RegistryStats.js +196 -0
- package/dist/index.cjs +229 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/types.d.ts +7 -0
- package/docs/README.md +5 -5
- package/docs/index.html +1 -1
- package/docs/memory-data/scaling-10-instances.json +206 -206
- package/docs/memory-data/scaling-100-instances.json +206 -206
- package/docs/memory-data/scaling-1000-instances.json +108 -108
- package/docs/memory-data/scaling-10000-instances.json +49 -49
- package/docs/memory-data/scaling-20-instances.json +208 -208
- package/docs/memory-data/scaling-200-instances.json +206 -206
- package/docs/memory-data/scaling-2000-instances.json +109 -109
- package/docs/memory-data/scaling-50-instances.json +206 -206
- package/docs/memory-data/scaling-500-instances.json +108 -108
- package/docs/memory-data/scaling-5000-instances.json +49 -49
- package/docs/memory-overhead.svg +16 -16
- package/docs/memory.md +122 -122
- package/docs/public/memory.md +111 -111
- package/docs/public/package.json +65 -0
- package/docs/src/App.css +84 -22
- package/docs/src/App.tsx +48 -25
- package/docs/src/index.css +1 -7
- package/docs/timing-range.svg +38 -40
- package/docs/timing.md +122 -122
- package/examples/README.md +19 -0
- package/examples/registry-statistics-example.ts +264 -0
- package/package.json +1 -1
package/docs/timing.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Performance Timing Report
|
|
2
2
|
|
|
3
|
-
Generated: 2025-07-
|
|
4
|
-
Version: 4.4.
|
|
3
|
+
Generated: 2025-07-21T06:44:48.558Z
|
|
4
|
+
Version: 4.4.10
|
|
5
5
|
Node.js: v22.0.0
|
|
6
6
|
Platform: darwin arm64
|
|
7
7
|
|
|
@@ -15,43 +15,43 @@ Timing results are reported in microseconds (µs) for precision.
|
|
|
15
15
|
|
|
16
16
|
| Operation | Description | Avg Time (µs) | Min Time (µs) | Max Time (µs) | Threshold (µs) | Status |
|
|
17
17
|
|-----------|-------------|---------------|---------------|---------------|----------------|--------|
|
|
18
|
-
| createRegistry | Time to create a new registry |
|
|
19
|
-
| createRegistryHub | Time to create a new registry hub | 0.
|
|
20
|
-
| createInstance | Time to create a new instance |
|
|
21
|
-
| registerInstance | Time to register an instance in registry | 6.
|
|
22
|
-
| lookupInstance | Time to lookup an existing instance from registry | 0.
|
|
23
|
-
| completeWorkflow | Time for complete workflow: create hub, registry, instance, register, and lookup |
|
|
18
|
+
| createRegistry | Time to create a new registry | 3.5 | 0.1 | 25880.4 | 5000 | ✅ PASS |
|
|
19
|
+
| createRegistryHub | Time to create a new registry hub | 0.3 | 0.0 | 1400.5 | 5000 | ✅ PASS |
|
|
20
|
+
| createInstance | Time to create a new instance | 3.7 | 0.2 | 14723.6 | 10000 | ✅ PASS |
|
|
21
|
+
| registerInstance | Time to register an instance in registry | 6.5 | 0.8 | 15321.9 | 5000 | ✅ PASS |
|
|
22
|
+
| lookupInstance | Time to lookup an existing instance from registry | 0.8 | 0.2 | 6769.4 | 2000 | ✅ PASS |
|
|
23
|
+
| completeWorkflow | Time for complete workflow: create hub, registry, instance, register, and lookup | 9.4 | 2.3 | 10988.1 | 25000 | ✅ PASS |
|
|
24
24
|
|
|
25
25
|
## Scaling Performance Tests
|
|
26
26
|
|
|
27
27
|
| Operation | Tree Size | Avg Time (µs) | Min Time (µs) | Max Time (µs) | Threshold (µs) | Status |
|
|
28
28
|
|-----------|-----------|---------------|---------------|---------------|----------------|--------|
|
|
29
|
-
| registerInstance_10 | 10 |
|
|
30
|
-
| lookupInstance_10 | 10 | 0.
|
|
31
|
-
| registerInstance_20 | 20 | 2.
|
|
32
|
-
| lookupInstance_20 | 20 | 0
|
|
33
|
-
| registerInstance_50 | 50 | 2.
|
|
34
|
-
| lookupInstance_50 | 50 | 0.
|
|
35
|
-
| registerInstance_100 | 100 | 2.
|
|
36
|
-
| lookupInstance_100 | 100 | 0.
|
|
37
|
-
| registerInstance_200 | 200 |
|
|
38
|
-
| lookupInstance_200 | 200 | 0.
|
|
39
|
-
| registerInstance_500 | 500 | 1.
|
|
40
|
-
| lookupInstance_500 | 500 | 0.
|
|
41
|
-
| registerInstance_1000 | 1000 |
|
|
42
|
-
| lookupInstance_1000 | 1000 | 0.
|
|
43
|
-
| registerInstance_2000 | 2000 |
|
|
44
|
-
| lookupInstance_2000 | 2000 | 0.
|
|
45
|
-
| registerInstance_5000 | 5000 |
|
|
46
|
-
| lookupInstance_5000 | 5000 | 0.
|
|
47
|
-
| registerInstance_10000 | 10000 |
|
|
48
|
-
| lookupInstance_10000 | 10000 | 0.
|
|
49
|
-
| registerInstance_20000 | 20000 | 1.
|
|
50
|
-
| lookupInstance_20000 | 20000 | 0.
|
|
51
|
-
| registerInstance_50000 | 50000 | 1.
|
|
52
|
-
| lookupInstance_50000 | 50000 | 0.
|
|
53
|
-
| registerInstance_100000 | 100000 | 1.
|
|
54
|
-
| lookupInstance_100000 | 100000 | 0.
|
|
29
|
+
| registerInstance_10 | 10 | 3.0 | 0.8 | 4805.3 | 5000 | ✅ PASS |
|
|
30
|
+
| lookupInstance_10 | 10 | 0.8 | 0.1 | 4309.9 | 2000 | ✅ PASS |
|
|
31
|
+
| registerInstance_20 | 20 | 2.3 | 0.8 | 3640.8 | 5000 | ✅ PASS |
|
|
32
|
+
| lookupInstance_20 | 20 | 1.0 | 0.2 | 10107.1 | 2000 | ✅ PASS |
|
|
33
|
+
| registerInstance_50 | 50 | 2.8 | 0.7 | 5268.4 | 5000 | ✅ PASS |
|
|
34
|
+
| lookupInstance_50 | 50 | 0.6 | 0.1 | 6467.8 | 2000 | ✅ PASS |
|
|
35
|
+
| registerInstance_100 | 100 | 2.9 | 0.8 | 8246.9 | 5000 | ✅ PASS |
|
|
36
|
+
| lookupInstance_100 | 100 | 0.6 | 0.1 | 6114.0 | 2000 | ✅ PASS |
|
|
37
|
+
| registerInstance_200 | 200 | 3.7 | 0.8 | 8407.2 | 10000 | ✅ PASS |
|
|
38
|
+
| lookupInstance_200 | 200 | 0.6 | 0.1 | 1741.1 | 5000 | ✅ PASS |
|
|
39
|
+
| registerInstance_500 | 500 | 1.4 | 0.7 | 1085.1 | 10000 | ✅ PASS |
|
|
40
|
+
| lookupInstance_500 | 500 | 0.3 | 0.1 | 76.8 | 5000 | ✅ PASS |
|
|
41
|
+
| registerInstance_1000 | 1000 | 1.3 | 0.8 | 264.5 | 10000 | ✅ PASS |
|
|
42
|
+
| lookupInstance_1000 | 1000 | 0.4 | 0.2 | 2325.5 | 5000 | ✅ PASS |
|
|
43
|
+
| registerInstance_2000 | 2000 | 1.2 | 0.8 | 65.4 | 20000 | ✅ PASS |
|
|
44
|
+
| lookupInstance_2000 | 2000 | 0.3 | 0.2 | 8.3 | 10000 | ✅ PASS |
|
|
45
|
+
| registerInstance_5000 | 5000 | 3.0 | 0.7 | 2989.8 | 20000 | ✅ PASS |
|
|
46
|
+
| lookupInstance_5000 | 5000 | 0.7 | 0.2 | 285.8 | 10000 | ✅ PASS |
|
|
47
|
+
| registerInstance_10000 | 10000 | 7.9 | 1.1 | 7913.2 | 20000 | ✅ PASS |
|
|
48
|
+
| lookupInstance_10000 | 10000 | 0.6 | 0.3 | 167.5 | 10000 | ✅ PASS |
|
|
49
|
+
| registerInstance_20000 | 20000 | 1.4 | 1.0 | 31.3 | 50000 | ✅ PASS |
|
|
50
|
+
| lookupInstance_20000 | 20000 | 0.5 | 0.2 | 15.0 | 25000 | ✅ PASS |
|
|
51
|
+
| registerInstance_50000 | 50000 | 1.3 | 0.9 | 30.3 | 50000 | ✅ PASS |
|
|
52
|
+
| lookupInstance_50000 | 50000 | 0.4 | 0.2 | 26.7 | 25000 | ✅ PASS |
|
|
53
|
+
| registerInstance_100000 | 100000 | 1.2 | 0.9 | 27.3 | 50000 | ✅ PASS |
|
|
54
|
+
| lookupInstance_100000 | 100000 | 0.4 | 0.2 | 14.0 | 25000 | ✅ PASS |
|
|
55
55
|
|
|
56
56
|
## Scaling Performance Visualization
|
|
57
57
|
|
|
@@ -71,9 +71,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
71
71
|
|
|
72
72
|
**Description:** Time to create a new registry
|
|
73
73
|
**Iterations:** 20000
|
|
74
|
-
**Average Time:**
|
|
75
|
-
**Min Time:** 0.
|
|
76
|
-
**Max Time:**
|
|
74
|
+
**Average Time:** 3.5 µs
|
|
75
|
+
**Min Time:** 0.1 µs
|
|
76
|
+
**Max Time:** 25880.4 µs
|
|
77
77
|
**Threshold:** 5000 µs
|
|
78
78
|
**Status:** ✅ PASS
|
|
79
79
|
|
|
@@ -81,9 +81,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
81
81
|
|
|
82
82
|
**Description:** Time to create a new registry hub
|
|
83
83
|
**Iterations:** 20000
|
|
84
|
-
**Average Time:** 0.
|
|
84
|
+
**Average Time:** 0.3 µs
|
|
85
85
|
**Min Time:** 0.0 µs
|
|
86
|
-
**Max Time:**
|
|
86
|
+
**Max Time:** 1400.5 µs
|
|
87
87
|
**Threshold:** 5000 µs
|
|
88
88
|
**Status:** ✅ PASS
|
|
89
89
|
|
|
@@ -91,9 +91,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
91
91
|
|
|
92
92
|
**Description:** Time to create a new instance
|
|
93
93
|
**Iterations:** 20000
|
|
94
|
-
**Average Time:**
|
|
94
|
+
**Average Time:** 3.7 µs
|
|
95
95
|
**Min Time:** 0.2 µs
|
|
96
|
-
**Max Time:**
|
|
96
|
+
**Max Time:** 14723.6 µs
|
|
97
97
|
**Threshold:** 10000 µs
|
|
98
98
|
**Status:** ✅ PASS
|
|
99
99
|
|
|
@@ -101,9 +101,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
101
101
|
|
|
102
102
|
**Description:** Time to register an instance in registry
|
|
103
103
|
**Iterations:** 20000
|
|
104
|
-
**Average Time:** 6.
|
|
104
|
+
**Average Time:** 6.5 µs
|
|
105
105
|
**Min Time:** 0.8 µs
|
|
106
|
-
**Max Time:**
|
|
106
|
+
**Max Time:** 15321.9 µs
|
|
107
107
|
**Threshold:** 5000 µs
|
|
108
108
|
**Status:** ✅ PASS
|
|
109
109
|
|
|
@@ -111,9 +111,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
111
111
|
|
|
112
112
|
**Description:** Time to lookup an existing instance from registry
|
|
113
113
|
**Iterations:** 20000
|
|
114
|
-
**Average Time:** 0.
|
|
115
|
-
**Min Time:** 0.
|
|
116
|
-
**Max Time:**
|
|
114
|
+
**Average Time:** 0.8 µs
|
|
115
|
+
**Min Time:** 0.2 µs
|
|
116
|
+
**Max Time:** 6769.4 µs
|
|
117
117
|
**Threshold:** 2000 µs
|
|
118
118
|
**Status:** ✅ PASS
|
|
119
119
|
|
|
@@ -121,9 +121,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
121
121
|
|
|
122
122
|
**Description:** Time for complete workflow: create hub, registry, instance, register, and lookup
|
|
123
123
|
**Iterations:** 10000
|
|
124
|
-
**Average Time:**
|
|
125
|
-
**Min Time:** 2.
|
|
126
|
-
**Max Time:**
|
|
124
|
+
**Average Time:** 9.4 µs
|
|
125
|
+
**Min Time:** 2.3 µs
|
|
126
|
+
**Max Time:** 10988.1 µs
|
|
127
127
|
**Threshold:** 25000 µs
|
|
128
128
|
**Status:** ✅ PASS
|
|
129
129
|
|
|
@@ -134,9 +134,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
134
134
|
**Description:** Time to register instance with 10 existing items in tree
|
|
135
135
|
**Tree Size:** 10 items
|
|
136
136
|
**Iterations:** 10000
|
|
137
|
-
**Average Time:**
|
|
138
|
-
**Min Time:** 0.
|
|
139
|
-
**Max Time:**
|
|
137
|
+
**Average Time:** 3.0 µs
|
|
138
|
+
**Min Time:** 0.8 µs
|
|
139
|
+
**Max Time:** 4805.3 µs
|
|
140
140
|
**Threshold:** 5000 µs
|
|
141
141
|
**Status:** ✅ PASS
|
|
142
142
|
|
|
@@ -145,9 +145,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
145
145
|
**Description:** Time to lookup instance with 10 items in tree
|
|
146
146
|
**Tree Size:** 10 items
|
|
147
147
|
**Iterations:** 20000
|
|
148
|
-
**Average Time:** 0.
|
|
149
|
-
**Min Time:** 0.
|
|
150
|
-
**Max Time:**
|
|
148
|
+
**Average Time:** 0.8 µs
|
|
149
|
+
**Min Time:** 0.1 µs
|
|
150
|
+
**Max Time:** 4309.9 µs
|
|
151
151
|
**Threshold:** 2000 µs
|
|
152
152
|
**Status:** ✅ PASS
|
|
153
153
|
|
|
@@ -156,9 +156,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
156
156
|
**Description:** Time to register instance with 20 existing items in tree
|
|
157
157
|
**Tree Size:** 20 items
|
|
158
158
|
**Iterations:** 10000
|
|
159
|
-
**Average Time:** 2.
|
|
159
|
+
**Average Time:** 2.3 µs
|
|
160
160
|
**Min Time:** 0.8 µs
|
|
161
|
-
**Max Time:**
|
|
161
|
+
**Max Time:** 3640.8 µs
|
|
162
162
|
**Threshold:** 5000 µs
|
|
163
163
|
**Status:** ✅ PASS
|
|
164
164
|
|
|
@@ -167,9 +167,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
167
167
|
**Description:** Time to lookup instance with 20 items in tree
|
|
168
168
|
**Tree Size:** 20 items
|
|
169
169
|
**Iterations:** 20000
|
|
170
|
-
**Average Time:** 0
|
|
171
|
-
**Min Time:** 0.
|
|
172
|
-
**Max Time:**
|
|
170
|
+
**Average Time:** 1.0 µs
|
|
171
|
+
**Min Time:** 0.2 µs
|
|
172
|
+
**Max Time:** 10107.1 µs
|
|
173
173
|
**Threshold:** 2000 µs
|
|
174
174
|
**Status:** ✅ PASS
|
|
175
175
|
|
|
@@ -178,9 +178,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
178
178
|
**Description:** Time to register instance with 50 existing items in tree
|
|
179
179
|
**Tree Size:** 50 items
|
|
180
180
|
**Iterations:** 10000
|
|
181
|
-
**Average Time:** 2.
|
|
182
|
-
**Min Time:** 0.
|
|
183
|
-
**Max Time:**
|
|
181
|
+
**Average Time:** 2.8 µs
|
|
182
|
+
**Min Time:** 0.7 µs
|
|
183
|
+
**Max Time:** 5268.4 µs
|
|
184
184
|
**Threshold:** 5000 µs
|
|
185
185
|
**Status:** ✅ PASS
|
|
186
186
|
|
|
@@ -189,9 +189,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
189
189
|
**Description:** Time to lookup instance with 50 items in tree
|
|
190
190
|
**Tree Size:** 50 items
|
|
191
191
|
**Iterations:** 20000
|
|
192
|
-
**Average Time:** 0.
|
|
193
|
-
**Min Time:** 0.
|
|
194
|
-
**Max Time:**
|
|
192
|
+
**Average Time:** 0.6 µs
|
|
193
|
+
**Min Time:** 0.1 µs
|
|
194
|
+
**Max Time:** 6467.8 µs
|
|
195
195
|
**Threshold:** 2000 µs
|
|
196
196
|
**Status:** ✅ PASS
|
|
197
197
|
|
|
@@ -200,9 +200,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
200
200
|
**Description:** Time to register instance with 100 existing items in tree
|
|
201
201
|
**Tree Size:** 100 items
|
|
202
202
|
**Iterations:** 10000
|
|
203
|
-
**Average Time:** 2.
|
|
203
|
+
**Average Time:** 2.9 µs
|
|
204
204
|
**Min Time:** 0.8 µs
|
|
205
|
-
**Max Time:**
|
|
205
|
+
**Max Time:** 8246.9 µs
|
|
206
206
|
**Threshold:** 5000 µs
|
|
207
207
|
**Status:** ✅ PASS
|
|
208
208
|
|
|
@@ -211,9 +211,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
211
211
|
**Description:** Time to lookup instance with 100 items in tree
|
|
212
212
|
**Tree Size:** 100 items
|
|
213
213
|
**Iterations:** 20000
|
|
214
|
-
**Average Time:** 0.
|
|
215
|
-
**Min Time:** 0.
|
|
216
|
-
**Max Time:**
|
|
214
|
+
**Average Time:** 0.6 µs
|
|
215
|
+
**Min Time:** 0.1 µs
|
|
216
|
+
**Max Time:** 6114.0 µs
|
|
217
217
|
**Threshold:** 2000 µs
|
|
218
218
|
**Status:** ✅ PASS
|
|
219
219
|
|
|
@@ -222,9 +222,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
222
222
|
**Description:** Time to register instance with 200 existing items in tree
|
|
223
223
|
**Tree Size:** 200 items
|
|
224
224
|
**Iterations:** 10000
|
|
225
|
-
**Average Time:**
|
|
225
|
+
**Average Time:** 3.7 µs
|
|
226
226
|
**Min Time:** 0.8 µs
|
|
227
|
-
**Max Time:**
|
|
227
|
+
**Max Time:** 8407.2 µs
|
|
228
228
|
**Threshold:** 10000 µs
|
|
229
229
|
**Status:** ✅ PASS
|
|
230
230
|
|
|
@@ -233,9 +233,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
233
233
|
**Description:** Time to lookup instance with 200 items in tree
|
|
234
234
|
**Tree Size:** 200 items
|
|
235
235
|
**Iterations:** 20000
|
|
236
|
-
**Average Time:** 0.
|
|
237
|
-
**Min Time:** 0.
|
|
238
|
-
**Max Time:**
|
|
236
|
+
**Average Time:** 0.6 µs
|
|
237
|
+
**Min Time:** 0.1 µs
|
|
238
|
+
**Max Time:** 1741.1 µs
|
|
239
239
|
**Threshold:** 5000 µs
|
|
240
240
|
**Status:** ✅ PASS
|
|
241
241
|
|
|
@@ -244,9 +244,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
244
244
|
**Description:** Time to register instance with 500 existing items in tree
|
|
245
245
|
**Tree Size:** 500 items
|
|
246
246
|
**Iterations:** 10000
|
|
247
|
-
**Average Time:** 1.
|
|
248
|
-
**Min Time:** 0.
|
|
249
|
-
**Max Time:**
|
|
247
|
+
**Average Time:** 1.4 µs
|
|
248
|
+
**Min Time:** 0.7 µs
|
|
249
|
+
**Max Time:** 1085.1 µs
|
|
250
250
|
**Threshold:** 10000 µs
|
|
251
251
|
**Status:** ✅ PASS
|
|
252
252
|
|
|
@@ -255,9 +255,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
255
255
|
**Description:** Time to lookup instance with 500 items in tree
|
|
256
256
|
**Tree Size:** 500 items
|
|
257
257
|
**Iterations:** 20000
|
|
258
|
-
**Average Time:** 0.
|
|
259
|
-
**Min Time:** 0.
|
|
260
|
-
**Max Time:**
|
|
258
|
+
**Average Time:** 0.3 µs
|
|
259
|
+
**Min Time:** 0.1 µs
|
|
260
|
+
**Max Time:** 76.8 µs
|
|
261
261
|
**Threshold:** 5000 µs
|
|
262
262
|
**Status:** ✅ PASS
|
|
263
263
|
|
|
@@ -266,9 +266,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
266
266
|
**Description:** Time to register instance with 1000 existing items in tree
|
|
267
267
|
**Tree Size:** 1000 items
|
|
268
268
|
**Iterations:** 10000
|
|
269
|
-
**Average Time:**
|
|
269
|
+
**Average Time:** 1.3 µs
|
|
270
270
|
**Min Time:** 0.8 µs
|
|
271
|
-
**Max Time:**
|
|
271
|
+
**Max Time:** 264.5 µs
|
|
272
272
|
**Threshold:** 10000 µs
|
|
273
273
|
**Status:** ✅ PASS
|
|
274
274
|
|
|
@@ -277,9 +277,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
277
277
|
**Description:** Time to lookup instance with 1000 items in tree
|
|
278
278
|
**Tree Size:** 1000 items
|
|
279
279
|
**Iterations:** 20000
|
|
280
|
-
**Average Time:** 0.
|
|
281
|
-
**Min Time:** 0.
|
|
282
|
-
**Max Time:**
|
|
280
|
+
**Average Time:** 0.4 µs
|
|
281
|
+
**Min Time:** 0.2 µs
|
|
282
|
+
**Max Time:** 2325.5 µs
|
|
283
283
|
**Threshold:** 5000 µs
|
|
284
284
|
**Status:** ✅ PASS
|
|
285
285
|
|
|
@@ -288,9 +288,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
288
288
|
**Description:** Time to register instance with 2000 existing items in tree
|
|
289
289
|
**Tree Size:** 2000 items
|
|
290
290
|
**Iterations:** 2500
|
|
291
|
-
**Average Time:**
|
|
292
|
-
**Min Time:**
|
|
293
|
-
**Max Time:**
|
|
291
|
+
**Average Time:** 1.2 µs
|
|
292
|
+
**Min Time:** 0.8 µs
|
|
293
|
+
**Max Time:** 65.4 µs
|
|
294
294
|
**Threshold:** 20000 µs
|
|
295
295
|
**Status:** ✅ PASS
|
|
296
296
|
|
|
@@ -299,9 +299,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
299
299
|
**Description:** Time to lookup instance with 2000 items in tree
|
|
300
300
|
**Tree Size:** 2000 items
|
|
301
301
|
**Iterations:** 5000
|
|
302
|
-
**Average Time:** 0.
|
|
303
|
-
**Min Time:** 0.
|
|
304
|
-
**Max Time:** 8.
|
|
302
|
+
**Average Time:** 0.3 µs
|
|
303
|
+
**Min Time:** 0.2 µs
|
|
304
|
+
**Max Time:** 8.3 µs
|
|
305
305
|
**Threshold:** 10000 µs
|
|
306
306
|
**Status:** ✅ PASS
|
|
307
307
|
|
|
@@ -310,9 +310,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
310
310
|
**Description:** Time to register instance with 5000 existing items in tree
|
|
311
311
|
**Tree Size:** 5000 items
|
|
312
312
|
**Iterations:** 2500
|
|
313
|
-
**Average Time:**
|
|
314
|
-
**Min Time:**
|
|
315
|
-
**Max Time:**
|
|
313
|
+
**Average Time:** 3.0 µs
|
|
314
|
+
**Min Time:** 0.7 µs
|
|
315
|
+
**Max Time:** 2989.8 µs
|
|
316
316
|
**Threshold:** 20000 µs
|
|
317
317
|
**Status:** ✅ PASS
|
|
318
318
|
|
|
@@ -321,9 +321,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
321
321
|
**Description:** Time to lookup instance with 5000 items in tree
|
|
322
322
|
**Tree Size:** 5000 items
|
|
323
323
|
**Iterations:** 5000
|
|
324
|
-
**Average Time:** 0.
|
|
325
|
-
**Min Time:** 0.
|
|
326
|
-
**Max Time:**
|
|
324
|
+
**Average Time:** 0.7 µs
|
|
325
|
+
**Min Time:** 0.2 µs
|
|
326
|
+
**Max Time:** 285.8 µs
|
|
327
327
|
**Threshold:** 10000 µs
|
|
328
328
|
**Status:** ✅ PASS
|
|
329
329
|
|
|
@@ -332,9 +332,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
332
332
|
**Description:** Time to register instance with 10000 existing items in tree
|
|
333
333
|
**Tree Size:** 10000 items
|
|
334
334
|
**Iterations:** 2500
|
|
335
|
-
**Average Time:**
|
|
336
|
-
**Min Time:**
|
|
337
|
-
**Max Time:**
|
|
335
|
+
**Average Time:** 7.9 µs
|
|
336
|
+
**Min Time:** 1.1 µs
|
|
337
|
+
**Max Time:** 7913.2 µs
|
|
338
338
|
**Threshold:** 20000 µs
|
|
339
339
|
**Status:** ✅ PASS
|
|
340
340
|
|
|
@@ -343,9 +343,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
343
343
|
**Description:** Time to lookup instance with 10000 items in tree
|
|
344
344
|
**Tree Size:** 10000 items
|
|
345
345
|
**Iterations:** 5000
|
|
346
|
-
**Average Time:** 0.
|
|
347
|
-
**Min Time:** 0.
|
|
348
|
-
**Max Time:**
|
|
346
|
+
**Average Time:** 0.6 µs
|
|
347
|
+
**Min Time:** 0.3 µs
|
|
348
|
+
**Max Time:** 167.5 µs
|
|
349
349
|
**Threshold:** 10000 µs
|
|
350
350
|
**Status:** ✅ PASS
|
|
351
351
|
|
|
@@ -354,9 +354,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
354
354
|
**Description:** Time to register instance with 20000 existing items in tree
|
|
355
355
|
**Tree Size:** 20000 items
|
|
356
356
|
**Iterations:** 500
|
|
357
|
-
**Average Time:** 1.
|
|
358
|
-
**Min Time:** 0
|
|
359
|
-
**Max Time:**
|
|
357
|
+
**Average Time:** 1.4 µs
|
|
358
|
+
**Min Time:** 1.0 µs
|
|
359
|
+
**Max Time:** 31.3 µs
|
|
360
360
|
**Threshold:** 50000 µs
|
|
361
361
|
**Status:** ✅ PASS
|
|
362
362
|
|
|
@@ -365,9 +365,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
365
365
|
**Description:** Time to lookup instance with 20000 items in tree
|
|
366
366
|
**Tree Size:** 20000 items
|
|
367
367
|
**Iterations:** 1250
|
|
368
|
-
**Average Time:** 0.
|
|
369
|
-
**Min Time:** 0.
|
|
370
|
-
**Max Time:**
|
|
368
|
+
**Average Time:** 0.5 µs
|
|
369
|
+
**Min Time:** 0.2 µs
|
|
370
|
+
**Max Time:** 15.0 µs
|
|
371
371
|
**Threshold:** 25000 µs
|
|
372
372
|
**Status:** ✅ PASS
|
|
373
373
|
|
|
@@ -376,9 +376,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
376
376
|
**Description:** Time to register instance with 50000 existing items in tree
|
|
377
377
|
**Tree Size:** 50000 items
|
|
378
378
|
**Iterations:** 500
|
|
379
|
-
**Average Time:** 1.
|
|
379
|
+
**Average Time:** 1.3 µs
|
|
380
380
|
**Min Time:** 0.9 µs
|
|
381
|
-
**Max Time:**
|
|
381
|
+
**Max Time:** 30.3 µs
|
|
382
382
|
**Threshold:** 50000 µs
|
|
383
383
|
**Status:** ✅ PASS
|
|
384
384
|
|
|
@@ -387,9 +387,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
387
387
|
**Description:** Time to lookup instance with 50000 items in tree
|
|
388
388
|
**Tree Size:** 50000 items
|
|
389
389
|
**Iterations:** 1250
|
|
390
|
-
**Average Time:** 0.
|
|
391
|
-
**Min Time:** 0.
|
|
392
|
-
**Max Time:**
|
|
390
|
+
**Average Time:** 0.4 µs
|
|
391
|
+
**Min Time:** 0.2 µs
|
|
392
|
+
**Max Time:** 26.7 µs
|
|
393
393
|
**Threshold:** 25000 µs
|
|
394
394
|
**Status:** ✅ PASS
|
|
395
395
|
|
|
@@ -398,9 +398,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
398
398
|
**Description:** Time to register instance with 100000 existing items in tree
|
|
399
399
|
**Tree Size:** 100000 items
|
|
400
400
|
**Iterations:** 500
|
|
401
|
-
**Average Time:** 1.
|
|
402
|
-
**Min Time:**
|
|
403
|
-
**Max Time:**
|
|
401
|
+
**Average Time:** 1.2 µs
|
|
402
|
+
**Min Time:** 0.9 µs
|
|
403
|
+
**Max Time:** 27.3 µs
|
|
404
404
|
**Threshold:** 50000 µs
|
|
405
405
|
**Status:** ✅ PASS
|
|
406
406
|
|
|
@@ -409,9 +409,9 @@ consistent performance, while wider bands show more variability.*
|
|
|
409
409
|
**Description:** Time to lookup instance with 100000 items in tree
|
|
410
410
|
**Tree Size:** 100000 items
|
|
411
411
|
**Iterations:** 1250
|
|
412
|
-
**Average Time:** 0.
|
|
413
|
-
**Min Time:** 0.
|
|
414
|
-
**Max Time:**
|
|
412
|
+
**Average Time:** 0.4 µs
|
|
413
|
+
**Min Time:** 0.2 µs
|
|
414
|
+
**Max Time:** 14.0 µs
|
|
415
415
|
**Threshold:** 25000 µs
|
|
416
416
|
**Status:** ✅ PASS
|
|
417
417
|
|
package/examples/README.md
CHANGED
|
@@ -33,6 +33,18 @@ Shows how each key path maps to different implementations via scopes using the r
|
|
|
33
33
|
|
|
34
34
|
Perfect for enterprise applications that need clean separation of concerns and organized service architecture.
|
|
35
35
|
|
|
36
|
+
### 4. `registry-statistics-example.ts` 📊 **Usage Analytics**
|
|
37
|
+
**Track and monitor registry usage patterns with scope-aware analytics!** Demonstrates advanced statistics tracking:
|
|
38
|
+
- **Scope-Aware Tracking**: Separate statistics for each kta + scopes combination
|
|
39
|
+
- **Total Call Monitoring**: Track overall `get()` method usage
|
|
40
|
+
- **Detailed Coordinate Records**: Individual tracking for each service/scope pair
|
|
41
|
+
- **Environment Analysis**: Aggregate statistics by environment (prod/dev)
|
|
42
|
+
- **Most/Least Used Services**: Identify usage patterns and bottlenecks
|
|
43
|
+
- **Immutable Statistics**: Safe access to tracking data without affecting internal state
|
|
44
|
+
- **Normalized Scope Handling**: Consistent tracking regardless of scope order
|
|
45
|
+
|
|
46
|
+
Perfect for monitoring, optimization, understanding service usage patterns, and analyzing environment-specific behavior in production applications.
|
|
47
|
+
|
|
36
48
|
## Key Concepts Demonstrated
|
|
37
49
|
|
|
38
50
|
### Simple Usage (simple-example.ts)
|
|
@@ -162,9 +174,16 @@ npx tsx examples/coordinates-example.ts
|
|
|
162
174
|
# Run the RegistryHub cross-registry coordinate discovery example
|
|
163
175
|
npx tsx examples/registry-hub-coordinates-example.ts
|
|
164
176
|
|
|
177
|
+
# Run the registry statistics tracking example
|
|
178
|
+
npx tsx examples/registry-statistics-example.ts
|
|
179
|
+
|
|
165
180
|
# Or in Node.js
|
|
166
181
|
node -r esbuild-register examples/simple-example.ts
|
|
182
|
+
node -r esbuild-register examples/multi-level-keys.ts
|
|
167
183
|
node -r esbuild-register examples/registry-hub-types.ts
|
|
184
|
+
node -r esbuild-register examples/coordinates-example.ts
|
|
185
|
+
node -r esbuild-register examples/registry-hub-coordinates-example.ts
|
|
186
|
+
node -r esbuild-register examples/registry-statistics-example.ts
|
|
168
187
|
```
|
|
169
188
|
|
|
170
189
|
## Integration with Real Fjell Registry
|