After more testing I narrow the input to stdin length for memory to increase pointing to Node.js and Deno executables to when I call this in the browser port.postMessage(new Array((4096*3)+818));
65531 is written to log.txt, which is expected JSON.stringify(new Array((4096*3)+818)).length // 65531 when I add 1 to that input array port.postMessage(new Array((4096*3)+819)); 1567386741 is written to log.txt. The relevant Node.js code function getMessage() { const header = new Uint32Array(1); readSync(0, header); const content = new Uint8Array(header[0]); writeFileSync('log.txt', JSON.stringify(header[0])); readSync(0, content); return content; } and Deno code async function getMessage() { const header = new Uint32Array(1); await Deno.stdin.read(header); await Deno.writeTextFile("log.txt", header[0]); const output = new Uint8Array(header[0]); await Deno.stdin.read(output); return output; } On Saturday, December 31, 2022 at 2:35:32 PM UTC-8 guest271314 wrote: > Appears to be a memory leak in Node.js and Deno when input to stdin > (and/or stdout) is greater than 4096*3. node executable memory usage climbs > to 700MB+ then exits when input is new Array(4096*4). > > Are there any V8 flags I can use to work around this? > > On Saturday, December 31, 2022 at 12:11:16 PM UTC-8 guest271314 wrote: > >> I created Native Messaging hosts in several programming languages >> including C, C++, JavaScript. In JavaScript I created a host specific to >> QuickJS, Node.js, Deno. Node.js and Deno depend on V8. I use the same call >> in the extension to create hosts >> >> globalThis.name = chrome.runtime.getManifest().short_name; >> >> globalThis.port = chrome.runtime.connectNative(globalThis.name); >> port.onMessage.addListener((message) => console.log(message)); >> port.onDisconnect.addListener((p) => >> console.log(chrome.runtime.lastError)); >> port.postMessage(new Array(200000)); >> >> chrome.runtime.onInstalled.addListener((reason) => { >> console.log(reason); >> }); >> >> The same code used to work on Chromium Dev Channel. Now the V8 JavaScript >> engine-specific versions increase memory usage exponentially to upwards of >> 1GB, then exit. >> >> The input is echoed when the input array is 2000. >> >> Appears to be some kind of caching or process blocking. I am not sure >> though. >> >> Any recent changes that impact buffering or caching procceses? >> >> -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/v8-users/2cac191a-9edc-4613-be2b-7cc5aae6cc63n%40googlegroups.com.