* Tests renderer memory usage
()
| 279 | * Tests renderer memory usage |
| 280 | */ |
| 281 | async function testRendererMemory () { |
| 282 | console.log("🔥 Renderer Memory Test"); |
| 283 | console.log("-".repeat(50)); |
| 284 | |
| 285 | const monitor = new MemoryMonitor(); |
| 286 | const server = tenso({ silent: true, logging: { enabled: false } }); |
| 287 | const renderers = server.renderers; |
| 288 | |
| 289 | const testData = { |
| 290 | items: Array.from({ length: 500 }, (_, i) => ({ |
| 291 | id: i, |
| 292 | name: `Item ${i}`, |
| 293 | description: `Description for item ${i}`, |
| 294 | metadata: { |
| 295 | created: new Date().toISOString(), |
| 296 | tags: [`tag${i}`, "general"] |
| 297 | } |
| 298 | })) |
| 299 | }; |
| 300 | |
| 301 | monitor.snapshot("Initial state"); |
| 302 | |
| 303 | // Test JSON renderer |
| 304 | const jsonRenderer = renderers.get("application/json"); |
| 305 | const req = { |
| 306 | headers: { accept: "application/json" }, |
| 307 | parsed: { searchParams: new URLSearchParams() }, |
| 308 | server: server |
| 309 | }; |
| 310 | const res = { |
| 311 | statusCode: 200, |
| 312 | headers: {}, |
| 313 | getHeader: name => res.headers[name], |
| 314 | removeHeader: name => delete res.headers[name], |
| 315 | header: (name, value) => res.headers[name] = value, // eslint-disable-line no-return-assign |
| 316 | getHeaders: () => res.headers |
| 317 | }; |
| 318 | |
| 319 | for (let i = 0; i < 1000; i++) { |
| 320 | jsonRenderer(req, res, testData); |
| 321 | } |
| 322 | |
| 323 | monitor.snapshot("After JSON rendering (1000 iterations)"); |
| 324 | |
| 325 | // Test XML renderer |
| 326 | const xmlRenderer = renderers.get("application/xml"); |
| 327 | for (let i = 0; i < 500; i++) { |
| 328 | xmlRenderer(req, res, testData); |
| 329 | } |
| 330 | |
| 331 | monitor.snapshot("After XML rendering (500 iterations)"); |
| 332 | |
| 333 | // Test YAML renderer |
| 334 | const yamlRenderer = renderers.get("application/yaml"); |
| 335 | for (let i = 0; i < 500; i++) { |
| 336 | yamlRenderer(req, res, testData); |
| 337 | } |
| 338 |