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

Function testRendererMemory

benchmarks/memory.js:281–342  ·  view source on GitHub ↗

* Tests renderer memory usage

()

Source from the content-addressed store, hash-verified

279 * Tests renderer memory usage
280 */
281async 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

Callers 1

mainFunction · 0.85

Calls 4

snapshotMethod · 0.95
reportMethod · 0.95
tensoFunction · 0.90
logMethod · 0.80

Tested by

no test coverage detected