/lowram/Lowprep.js is now using testdistribute.js

This commit is contained in:
2024-10-14 01:25:02 +02:00
parent fc25418810
commit 151c773446
6 changed files with 54 additions and 26 deletions

View File

@@ -1,8 +1,11 @@
import { sortJsonArrayByKey } from "Library.js";
/** @param {NS} ns */
export async function main(ns) {
ns.tail();
ns.disableLog("ALL");
const sScript = ns.args[0]; // script
const nThreads = ns.args[1]; // threads
let nThreads = ns.args[1]; // threads
const sTarget = ns.args[2]; // target server
const bRepeat = ns.args[3]; // should this script loop
const nMsecDelay = ns.args[4]; // MsecDelay
@@ -15,15 +18,15 @@ export async function main(ns) {
const sWorkerList = "WorkerList.txt";
if (!ns.fileExists(sListName, "home")) { ns.print(`ERROR ${sListName} does not exist.`); return false; };
let sServerList = JSON.parse(ns.read(sListName));
let sServerList = ns.read(sListName);
let aSortedList = sortJsonArrayByKey(sServerList, "serverCores", "maxRam").reverse();
//ns.tprint(aSortedList);
ns.print(sScript);
ns.print(nThreads);
ns.print(sTarget);
const nScriptSize = ns.getScriptRam(sScript, "home");
const nTotalSize = nScriptSize * nThreads;
let nTotalSize = nScriptSize * nThreads;
ns.print("nScriptSize = " + nScriptSize);
ns.print("nTotalSize = " + nTotalSize);
@@ -47,12 +50,23 @@ export async function main(ns) {
// run remaining hacks on smallest to biggest core servers
aSortedList.forEach((entry) => {
if (entry.rootAccess && ns.getServerMaxRam() >= ns.getScriptRam(sScript, "home")) {
let sHost = entry.serverName;
let sHost = entry.serverName;
ns.print("sHost = " + sHost)
ns.scp(sScript, sHost);
let nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nTotalSize) {
ns.exec(sScript, sHost, nThreads, sTarget, bRepeat, nMsecDelay);
nThreads = 0;
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
}
})
else if (nThreads >= 1 && entry.rootAccess && nFreeRAM >= nScriptSize){
let nThreadsDist = Math.floor(nFreeRAM / nScriptSize);
ns.print("room for : " + nThreadsDist + " scripts");
ns.exec(sScript, sHost, nThreadsDist, sTarget, bRepeat, nMsecDelay);
nThreads -= nThreadsDist;
nFreeRAM = ns.getServerMaxRam(entry.serverName) - ns.getServerUsedRam(entry.serverName);
}
});
/*
for (i = 0; ; i++) {