-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhttpserver.js
More file actions
74 lines (55 loc) · 1.86 KB
/
httpserver.js
File metadata and controls
74 lines (55 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
var http = require('http');
var chart = require('chart');
var clear = require('clear');
var fake = require('./fake');
var FAKE = fake(512 * 1024);
var sockets = new Set()
var port = 54321;
var server = http.createServer(handleRequest).listen(port);
function handleRequest(request, response) {
var clearme;
request.on('close', function close() {
console.log('disconnected');
clearTimeout(clearme);
response = null
});
clearme = setTimeout(fake_update, 0);
var start = Date.now();
response.writeHead(200, {});
function fake_update() {
var fake_data = FAKE + fake(4);
if (response) response.write(Buffer(fake_data));
var timeout = 2000;
if (Date.now() - start > 60 * 1.5 * 1000) {
console.log('stop sending')
} else {
clearme = setTimeout(fake_update, timeout);
}
}
};
server.on('connection', socket => {
sockets.add(socket);
socket.on('close', function close() {
sockets.delete(socket);
});
});
var data = [];
var time = Date.now()
setInterval(function() {
if (global.gc) { gc(); gc(); }
clear();
console.log(chart(data, { width: 120, height: 40 }));
console.log('Sockets', sockets.size);
var mem = process.memoryUsage();
data.push(mem.rss / 1024 / 1024)
console.log('RSS', (mem.rss / 1024 / 1024).toFixed(2), 'MB' )
console.log('HeapTotal', (mem.heapTotal / 1024 / 1024).toFixed(2), 'MB' )
console.log('HeapUsed', (mem.heapUsed / 1024 / 1024).toFixed(2), 'MB' )
console.log( ((Date.now() - time) / 1000).toFixed(2), 's');
var socketBufferSize = 0;
sockets.forEach( s => {
socketBufferSize += s.bufferSize;
});
console.log('Socket Buffer Size', (socketBufferSize / 1024 / 1024).toFixed(2), 'MB' );
console.log('Running HTTP Server on port ' + port);
}, 2000)