mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-26 17:43:48 +01:00
Merge pull request #1594 from danielyxie/dev
Fix ram miscalc and ls with tiemstamps
This commit is contained in:
commit
a4d4ebe2a2
22
dist/vendor.bundle.js
vendored
22
dist/vendor.bundle.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -114,13 +114,14 @@ function NetscriptFunctions(workerScript: WorkerScript): NS {
|
|||||||
threads = 1;
|
threads = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
workerScript.dynamicRamUsage += ramCost * threads;
|
workerScript.dynamicRamUsage += ramCost;
|
||||||
if (workerScript.dynamicRamUsage > 1.01 * workerScript.ramUsage) {
|
if (workerScript.dynamicRamUsage > 1.01 * workerScript.ramUsage) {
|
||||||
throw makeRuntimeRejectMsg(
|
throw makeRuntimeRejectMsg(
|
||||||
workerScript,
|
workerScript,
|
||||||
`Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${fnName}.
|
`Dynamic RAM usage calculated to be greater than initial RAM usage on fn: ${fnName}.
|
||||||
This is probably because you somehow circumvented the static RAM calculation.
|
This is probably because you somehow circumvented the static RAM calculation.
|
||||||
|
|
||||||
|
Threads: ${threads}
|
||||||
Dynamic RAM Usage: ${numeralWrapper.formatRAM(workerScript.dynamicRamUsage)}
|
Dynamic RAM Usage: ${numeralWrapper.formatRAM(workerScript.dynamicRamUsage)}
|
||||||
Static RAM Usage: ${numeralWrapper.formatRAM(workerScript.ramUsage)}
|
Static RAM Usage: ${numeralWrapper.formatRAM(workerScript.ramUsage)}
|
||||||
|
|
||||||
@ -131,11 +132,6 @@ function NetscriptFunctions(workerScript: WorkerScript): NS {
|
|||||||
* Using map access to do the same
|
* Using map access to do the same
|
||||||
const myScan = ns['scan'];
|
const myScan = ns['scan'];
|
||||||
|
|
||||||
* Saving script in the improper order.
|
|
||||||
Increase the cost of an imported script, save it, then run the
|
|
||||||
parent. To fix this just re-open & save every script in order
|
|
||||||
from most imported to least imported (parent script).
|
|
||||||
|
|
||||||
Sorry :(`,
|
Sorry :(`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@ function makeScriptBlob(code: string): Blob {
|
|||||||
return new Blob([code], { type: "text/javascript" });
|
return new Blob([code], { type: "text/javascript" });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function compile(script: Script, scripts: Script[]): void {
|
export async function compile(script: Script, scripts: Script[]): Promise<void> {
|
||||||
if (!shouldCompile(script, scripts)) return;
|
if (!shouldCompile(script, scripts)) return;
|
||||||
// The URL at the top is the one we want to import. It will
|
// The URL at the top is the one we want to import. It will
|
||||||
// recursively import all the other modules in the urlStack.
|
// recursively import all the other modules in the urlStack.
|
||||||
@ -17,7 +17,7 @@ export function compile(script: Script, scripts: Script[]): void {
|
|||||||
// but not really behaves like import. Particularly, it cannot
|
// but not really behaves like import. Particularly, it cannot
|
||||||
// load fully dynamic content. So we hide the import from webpack
|
// load fully dynamic content. So we hide the import from webpack
|
||||||
// by placing it inside an eval call.
|
// by placing it inside an eval call.
|
||||||
script.markUpdated();
|
await script.updateRamUsage(scripts);
|
||||||
const uurls = _getScriptUrls(script, scripts, []);
|
const uurls = _getScriptUrls(script, scripts, []);
|
||||||
if (script.url) URL.revokeObjectURL(script.url); // remove the old reference.
|
if (script.url) URL.revokeObjectURL(script.url); // remove the old reference.
|
||||||
if (script.dependencies.length > 0) script.dependencies.forEach((dep) => URL.revokeObjectURL(dep.url));
|
if (script.dependencies.length > 0) script.dependencies.forEach((dep) => URL.revokeObjectURL(dep.url));
|
||||||
@ -37,7 +37,8 @@ export function compile(script: Script, scripts: Script[]): void {
|
|||||||
export async function executeJSScript(scripts: Script[] = [], workerScript: WorkerScript): Promise<void> {
|
export async function executeJSScript(scripts: Script[] = [], workerScript: WorkerScript): Promise<void> {
|
||||||
const script = workerScript.getScript();
|
const script = workerScript.getScript();
|
||||||
if (script === null) throw new Error("script is null");
|
if (script === null) throw new Error("script is null");
|
||||||
compile(script, scripts);
|
await compile(script, scripts);
|
||||||
|
workerScript.ramUsage = script.ramUsage;
|
||||||
const loadedModule = await script.module;
|
const loadedModule = await script.module;
|
||||||
|
|
||||||
const ns = workerScript.env.vars;
|
const ns = workerScript.env.vars;
|
||||||
|
@ -477,7 +477,8 @@ function createAndAddWorkerScript(runningScriptObj: RunningScript, server: BaseS
|
|||||||
} else {
|
} else {
|
||||||
runningScriptObj.threads = 1;
|
runningScriptObj.threads = 1;
|
||||||
}
|
}
|
||||||
const ramUsage = roundToTwo(getRamUsageFromRunningScript(runningScriptObj) * threads);
|
const oneRamUsage = getRamUsageFromRunningScript(runningScriptObj);
|
||||||
|
const ramUsage = roundToTwo(oneRamUsage * threads);
|
||||||
const ramAvailable = server.maxRam - server.ramUsed;
|
const ramAvailable = server.maxRam - server.ramUsed;
|
||||||
if (ramUsage > ramAvailable) {
|
if (ramUsage > ramAvailable) {
|
||||||
dialogBoxCreate(
|
dialogBoxCreate(
|
||||||
@ -502,7 +503,7 @@ function createAndAddWorkerScript(runningScriptObj: RunningScript, server: BaseS
|
|||||||
// Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying
|
// Create the WorkerScript. NOTE: WorkerScript ctor will set the underlying
|
||||||
// RunningScript's PID as well
|
// RunningScript's PID as well
|
||||||
const s = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);
|
const s = new WorkerScript(runningScriptObj, pid, NetscriptFunctions);
|
||||||
s.ramUsage = ramUsage;
|
s.ramUsage = oneRamUsage;
|
||||||
|
|
||||||
// Add the WorkerScript to the global pool
|
// Add the WorkerScript to the global pool
|
||||||
workerScripts.set(pid, s);
|
workerScripts.set(pid, s);
|
||||||
|
@ -22,6 +22,12 @@ export class Output {
|
|||||||
export class RawOutput {
|
export class RawOutput {
|
||||||
raw: React.ReactNode;
|
raw: React.ReactNode;
|
||||||
constructor(node: React.ReactNode) {
|
constructor(node: React.ReactNode) {
|
||||||
|
if (Settings.EnableTimestamps)
|
||||||
|
node = (
|
||||||
|
<>
|
||||||
|
[{getTimestamp()}] {node}
|
||||||
|
</>
|
||||||
|
);
|
||||||
this.raw = node;
|
this.raw = node;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -143,10 +143,6 @@ export function ls(
|
|||||||
{ segments: allScripts, style: { color: "yellow", fontStyle: "bold" } },
|
{ segments: allScripts, style: { color: "yellow", fontStyle: "bold" } },
|
||||||
].filter((g) => g.segments.length > 0);
|
].filter((g) => g.segments.length > 0);
|
||||||
for (let i = 0; i < groups.length; i++) {
|
for (let i = 0; i < groups.length; i++) {
|
||||||
if (i !== 0) {
|
|
||||||
terminal.print("");
|
|
||||||
terminal.print("");
|
|
||||||
}
|
|
||||||
postSegments(groups[i].segments, groups[i].style);
|
postSegments(groups[i].segments, groups[i].style);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user