const http = require('http');
// This object will store data for each request (memory leak!)
const requestData = {};
const server = http.createServer((req, res) => {
// Generate a unique request ID
const requestId = Date.now() + Math.random().toString(36).substring(2, 15);
// Store data in the global object (THIS IS THE MEMORY LEAK)
requestData[requestId] = {
url: req.url,
method: req.method,
headers: req.headers,
timestamp: Date.now(),
// Create a large object to make the leak more obvious
payload: Buffer.alloc(1024 * 1024) // Allocate 1MB per request
};
// Log memory usage after each request
const memoryUsage = process.memoryUsage();
console.log(`Memory usage after request ${requestId}:`);
console.log(`- Heap Used: ${Math.round(memoryUsage.heapUsed / 1024 / 1024)} MB`);
console.log(`- Request count: ${Object.keys(requestData).length}`);
res.end('Request processed');
});
server.listen(8080);
Memory usage after request 17501562284748u1qwj4g0pr: - Heap Used: 5 MB - Request count: 1 Memory usage after request 1750156229207rjymimuyi9f: - Heap Used: 5 MB - Request count: 2 Memory usage after request 17501562352401dzn9hfqipn: - Heap Used: 5 MB - Request count: 3 Memory usage after request 1750156235412a87ix91692r: - Heap Used: 5 MB - Request count: 4 Memory usage after request 1750156235844c8iqc6r89n8: - Heap Used: 5 MB - Request count: 5 Memory usage after request 1750156236000fprxaqkipg: - Heap Used: 5 MB - Request count: 6 Memory usage after request 1750156236655nm0elyh4bol: - Heap Used: 5 MB - Request count: 7 Memory usage after request 1750156236815u4z5rjg1av: - Heap Used: 5 MB - Request count: 8 Memory usage after request 1750156237081tlorvgxg77q: - Heap Used: 5 MB - Request count: 9 Memory usage after request 17501562372375qfpdz2z4ni: - Heap Used: 5 MB - Request count: 10 Memory usage after request 17501562374656kh2fdqjdc6: - Heap Used: 4 MB - Request count: 11 Memory usage after request 1750156237596k2eegjibs6c: - Heap Used: 5 MB - Request count: 12