Average last 3 measurements before scaling workload

This commit is contained in:
Swizec Teller 2018-10-11 00:10:43 -07:00
parent dc1c106671
commit 9c70e39260
3 changed files with 27 additions and 3 deletions

View file

@ -3,28 +3,37 @@ const mri = require("mri");
const sll = require("single-line-log").stdout;
const kleur = require("kleur");
const fork = require("child_process").fork;
const sleep = require("sleep");
async function readTemp() {
const temp = await si.cpuTemperature();
return { main: temp.main, cores: temp.cores };
}
function avg(arr) {
return arr.reduce((sum, t) => t.main + sum, 0) / arr.length;
}
async function thawMyCarrots(targetTemp) {
let temp = await readTemp(),
temps = [temp, temp, temp],
children = [];
while (1) {
if (temp.main < targetTemp) {
if (avg(temps) < targetTemp) {
if (children.length < 10) {
children.push(fork("./eat-cpu"));
}
} else if (temp.main > targetTemp) {
} else if (avg(temps) > targetTemp) {
if (children.length > 0) {
children.pop().kill();
}
}
temp = await readTemp();
temps.shift();
temps.push(temp);
sll(
"Current temp",
kleur.bold.red(temp.main.toFixed(2)),
@ -32,6 +41,7 @@ async function thawMyCarrots(targetTemp) {
kleur.bold.gray(temp.cores),
`\nChildren: ${children.length}`
);
sleep.msleep(500);
}
}

13
package-lock.json generated
View file

@ -32,6 +32,11 @@
"resolved": "https://registry.npmjs.org/mri/-/mri-1.1.1.tgz",
"integrity": "sha1-haom09ru7t+A3FmEr5XMXKXK2fE="
},
"nan": {
"version": "2.11.1",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz",
"integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA=="
},
"number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
@ -55,6 +60,14 @@
"string-width": "^1.0.1"
}
},
"sleep": {
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/sleep/-/sleep-5.2.3.tgz",
"integrity": "sha512-vC05N1XqgIiPIj6tEq7wt0R32aTycJv4Ymo/jwSEp2PkeU1GCJ1tkl+RdYZEo7Gjebq8QQuhFuEe7vsyVGlFRA==",
"requires": {
"nan": ">=2.5.1"
}
},
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",

View file

@ -28,6 +28,7 @@
"osx-temperature-sensor": "^1.0.3",
"prime-number": "^0.2.2",
"single-line-log": "^1.1.2",
"sleep": "^5.2.3",
"systeminformation": "^3.45.7"
},
"bin": {