MCPcopy Create free account
hub / github.com/avoidwork/tenso / testMemoryPressure

Function testMemoryPressure

benchmarks/memory.js:570–636  ·  view source on GitHub ↗

* Performance under memory pressure

()

Source from the content-addressed store, hash-verified

568 * Performance under memory pressure
569 */
570async function testMemoryPressure () {
571 console.log("🔥 Memory Pressure Test");
572 console.log("-".repeat(50));
573
574 const monitor = new MemoryMonitor();
575
576 monitor.snapshot("Initial state");
577
578 // Create memory pressure
579 const largeObjects = [];
580 for (let i = 0; i < 100; i++) {
581 largeObjects.push({
582 id: i,
583 data: new Array(10000).fill(0).map((_, j) => ({
584 index: j,
585 value: Math.random(),
586 text: `Large text content for item ${i}-${j}`.repeat(10)
587 }))
588 });
589 }
590
591 monitor.snapshot("After creating memory pressure");
592
593 // Now test server performance under pressure
594 const server = tenso({
595 silent: true,
596 logging: { enabled: false },
597 rate: { enabled: true, limit: 1000 }
598 });
599
600 server.get("/test", (req, res) => {
601 res.send({ message: "Hello", data: largeObjects[0] }); // Reference large object
602 });
603
604 // Process requests under memory pressure
605 for (let i = 0; i < 200; i++) {
606 const req = {
607 method: "GET",
608 url: "/test",
609 headers: { accept: "application/json" },
610 parsed: { searchParams: new URLSearchParams() },
611 server: server,
612 sessionID: `pressure-session-${i}`
613 };
614
615 const res = {
616 statusCode: 200,
617 headers: {},
618 getHeader: name => res.headers[name],
619 removeHeader: name => delete res.headers[name],
620 header: (name, value) => res.headers[name] = value, // eslint-disable-line no-return-assign
621 getHeaders: () => res.headers
622 };
623
624 server.render(req, res, largeObjects[i % largeObjects.length]);
625 server.rateLimit(req);
626 }
627

Callers 1

mainFunction · 0.85

Calls 7

snapshotMethod · 0.95
forceGCMethod · 0.95
reportMethod · 0.95
tensoFunction · 0.90
logMethod · 0.80
renderMethod · 0.80
rateLimitMethod · 0.80

Tested by

no test coverage detected