Купили жене кресло в обычном оффлайн магазине. Привезли домой, собрали, всё хорошо.
Смотрим на коробке документ, а там адрес изготовителя - Россия, Белгородская область, город Шебекино.
import cluster from 'node:cluster';
import http from 'node:http';
import { availableParallelism } from 'node:os';
import process from 'node:process';
const numCPUs = availableParallelism();
if (cluster.isPrimary) {
console.log(`Primary ${process.pid} is running`);
// Fork workers.
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`worker ${worker.process.pid} died`);
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
go install github.com/codesenberg/bombardier@latest
bombardier http://127.0.0.1:7100/api/some/1101Результат без cluster:
Bombarding http://127.0.0.1:7100/api/some/1101 for 10s using 125 connection(s)
[=================================================================================================================] 10s
Done!
Statistics Avg Stdev Max
Reqs/sec 2754.89 1413.90 5813.88
Latency 45.31ms 1.95ms 72.43ms
HTTP codes:
1xx - 0, 2xx - 27625, 3xx - 0, 4xx - 0, 5xx - 0
others - 0
Throughput: 9.99MB/s
Результат с cluster (все 24 потока):Bombarding http://127.0.0.1:7100/api/some/1101 for 10s using 125 connection(s)
[=================================================================================================================] 10s
Done!
Statistics Avg Stdev Max
Reqs/sec 8424.89 801.49 15177.67
Latency 14.84ms 1.69ms 72.64ms
HTTP codes:
1xx - 0, 2xx - 84224, 3xx - 0, 4xx - 0, 5xx - 0
others - 0
Throughput: 30.54MB/s
Разница по производительности почти в 3 раза.let str1 = 'Famabara';
let str2 = str1; // Тут копия или новая строка?
let obj1 = { name: 'Famabara' };
let obj2 = obj1; // Тут копия или новый объект?
const arr = [];
for (let i = 0; i < 1200200; i++) {
arr.push('0123456789'.repeat(1000 * 1000));
}
while (true) {
}
39858 dima 20 0 2026180 1,0g 37824 R 100,0 3,2 0:21.44 nodeНа моей Кубунте сожрано 1 Гб оперативки. Ух ты.
const arr = [];
const text = '0123456789'.repeat(1000 * 1000);
for (let i = 0; i < 1200200; i++) {
arr.push(text);
}
while (true) {
}
40267 dima 20 0 1066148 73796 37440 R 99,7 0,2 0:12.27 node