* Memory usage test for renderers
()
| 316 | * Memory usage test for renderers |
| 317 | */ |
| 318 | function testRendererMemoryUsage () { |
| 319 | console.log("\n📊 Renderer Memory Usage"); |
| 320 | console.log("-".repeat(40)); |
| 321 | |
| 322 | const iterations = 1000; |
| 323 | const data = testData.large; |
| 324 | |
| 325 | // Test each renderer |
| 326 | const rendererTests = [ |
| 327 | { name: "JSON", renderer: renderers.get("application/json"), accept: "application/json" }, |
| 328 | { name: "XML", renderer: renderers.get("application/xml"), accept: "application/xml" }, |
| 329 | { name: "YAML", renderer: renderers.get("application/yaml"), accept: "application/yaml" }, |
| 330 | { name: "Plain", renderer: renderers.get("text/plain"), accept: "text/plain" } |
| 331 | ]; |
| 332 | |
| 333 | for (const test of rendererTests) { |
| 334 | const { req, res } = createMockReqRes(test.accept); |
| 335 | |
| 336 | const startMem = process.memoryUsage(); |
| 337 | for (let i = 0; i < iterations; i++) { |
| 338 | test.renderer(req, res, data); |
| 339 | } |
| 340 | const endMem = process.memoryUsage(); |
| 341 | |
| 342 | console.log(`${test.name} Renderer (${iterations} iterations):`); |
| 343 | const heapDiff = endMem.heapUsed - startMem.heapUsed; |
| 344 | console.log(` Heap Used: ${heapDiff >= 0 ? "+" : ""}${formatFilesize(heapDiff)}`); |
| 345 | } |
| 346 | console.log(" Note: Negative values indicate garbage collection occurred during test"); |
| 347 | } |
| 348 | |
| 349 | /** |
| 350 | * Tests renderer performance with different data sizes |
no test coverage detected