diff --git a/README.md b/README.md index bbfc27b..d2407f8 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,15 @@ # nodejs_warsaw_xxii +1. ```git clone git@git.techserio.com:mattiashz/nodejs_warsaw_xxii.git``` +2. ```cd nodejs_warsaw_xxii``` +3. ```npm install``` +4. ```node main.js``` +5. ```curl localhost:3000/helloworld``` +6. ```curl localhost:3000/hogger``` +5. open terminal +6. ```ps aux | grep "node main.js"``` +7. ```kill -USR1 ``` +8. Open Chrome / Chromium +9. go to address ```chrome://inspect``` +10. Click "Open dedicated DevTools for Node" + diff --git a/main.js b/main.js new file mode 100644 index 0000000..5f5e5a5 --- /dev/null +++ b/main.js @@ -0,0 +1,26 @@ +const express = require('express'); +const app = express(); + +app.get('/helloworld', (req, res) => { + res.send('hello, world'); +}); + +app.get('/hogger', (req, res) => { + let buf = Buffer.alloc(100 * 1024 * 1024); // 100 MB + for (let i = 0; i < buf.length; i += 4096) { // touch each 4KB page → real RSS + buf[i] = 1; + } + setTimeout(() => { + res.send('hog done'); + buf = null; + }, 10_000); +}); + +setInterval(() => { + const m = process.memoryUsage(); + console.log( `rss: ${(m.rss/1024/1024).toFixed(1)} MB, ` + `heapUsed: ${(m.heapUsed/1024/1024).toFixed(1)} MB, ` + + `external: ${(m.external/1024/1024).toFixed(1)} MB`);}, 1000); + +app.listen(3000, () => { + console.log('Listening on http://localhost:3000'); +}); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..57ce413 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "nodejs_warsaw_xxii", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git@git.techserio.com:mattiashz/nodejs_warsaw_xxii.git" + }, + "author": "hz", + "license": "ISC", + "dependencies": { + "express": "^5.1.0" + } +}