* Tests serializer memory usage
()
| 281 | * Tests serializer memory usage |
| 282 | */ |
| 283 | function testSerializerMemoryUsage () { |
| 284 | console.log("📊 Serializer Memory Usage"); |
| 285 | console.log("-".repeat(40)); |
| 286 | |
| 287 | const customSerializer = serializers.get("application/json"); |
| 288 | const plainSerializer = serializers.get("text/plain"); |
| 289 | |
| 290 | function measureMemory (name, serializer, iterations = 1000) { |
| 291 | if (global.gc) { |
| 292 | global.gc(); |
| 293 | } |
| 294 | const before = process.memoryUsage().heapUsed; |
| 295 | |
| 296 | for (let i = 0; i < iterations; i++) { |
| 297 | serializer(testData.medium, null, 200); |
| 298 | } |
| 299 | |
| 300 | if (global.gc) { |
| 301 | global.gc(); |
| 302 | } |
| 303 | const after = process.memoryUsage().heapUsed; |
| 304 | const diff = after - before; |
| 305 | |
| 306 | console.log(`${name} (${iterations} iterations):`); |
| 307 | console.log(` Heap Used: ${diff >= 0 ? "+" : ""}${formatFilesize(diff)}`); |
| 308 | } |
| 309 | |
| 310 | measureMemory("Custom Serializer", customSerializer); |
| 311 | measureMemory("Plain Serializer", plainSerializer); |
| 312 | |
| 313 | // Error serialization memory test |
| 314 | measureMemory("Custom Error Serialization", (data, err, status) => { // eslint-disable-line no-unused-vars |
| 315 | return customSerializer(null, testErrors.complex, 500, false); |
| 316 | }); |
| 317 | |
| 318 | console.log(""); |
| 319 | } |
| 320 | |
| 321 | /** |
| 322 | * Benchmarks status code handling |
no test coverage detected