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

Function testRequestResponse

benchmarks/basic-http.js:63–120  ·  view source on GitHub ↗

* Tests basic request/response cycle performance

()

Source from the content-addressed store, hash-verified

61 * Tests basic request/response cycle performance
62 */
63function testRequestResponse () {
64 return new Promise(resolve => {
65 const iterations = 10000;
66 const server = createTestServer();
67
68 server.start();
69
70 // Wait for server to be listening before accessing address
71 server.server.on("listening", () => {
72 const port = server.server.address().port; // eslint-disable-line no-unused-vars
73
74 console.log("\n📊 Basic Request/Response Performance");
75 console.log("-".repeat(40));
76
77 const startTime = process.hrtime.bigint();
78 let completed = 0;
79
80 // Simple simulation of request processing
81 for (let i = 0; i < iterations; i++) {
82 // Simulate request object
83 const req = {
84 method: "GET",
85 url: "/test",
86 headers: { "accept": "text/plain" },
87 parsed: new URL("http://localhost/test"),
88 server: server
89 };
90
91 // Simulate response object
92 const res = {
93 statusCode: 200,
94 headers: {},
95 getHeader: name => res.headers[name],
96 removeHeader: name => delete res.headers[name],
97 header: (name, value) => res.headers[name] = value, // eslint-disable-line no-return-assign
98 getHeaders: () => res.headers
99 };
100
101 // Simulate response processing
102 const body = server.render(req, res, "Hello World"); // eslint-disable-line no-unused-vars
103
104 if (++completed === iterations) {
105 const endTime = process.hrtime.bigint();
106 const duration = Number(endTime - startTime) / 1e6; // Convert to ms
107 const rps = Math.round(iterations / duration * 1000);
108
109 console.log(`Iterations: ${iterations.toLocaleString()}`);
110 console.log(`Duration: ${duration.toFixed(2)}ms`);
111 console.log(`Rate: ${rps.toLocaleString()} requests/second`);
112 console.log(`Avg: ${(duration / iterations).toFixed(4)}ms per request`);
113
114 server.stop();
115 resolve();
116 }
117 }
118 });
119 });
120}

Callers 1

mainFunction · 0.85

Calls 5

startMethod · 0.80
logMethod · 0.80
renderMethod · 0.80
stopMethod · 0.80
createTestServerFunction · 0.70

Tested by

no test coverage detected