Skip to content

Question: how to make swc-node to use less memory #730

@erfanium

Description

@erfanium

I use @swc-node to run TypeScript backend in production. because i don't like to add a build step to my workflow, on-the-fly transpilation just makes life easier

everything works fine, but the extra memory usage caused by swc is a downside to me.

to reproduce:

import { memoryUsage } from "node:process";

setInterval(() => {
  console.log(memoryUsage());
}, 2000);

node main.js: rss: 45MB, heapTotal: 6MB, heapUsed: 6MB, external: 421KB, arrayBuffers: 18KB
deno main.ts: rss: 52MB, heapTotal: 11MB, heapUsed: 10MB, external: 76KB, arrayBuffers: 0
node -r @swc-node/register main.ts: rss: 102MB, heapTotal: 30MB, heapUsed: 23MB, external: 592KB, arrayBuffers: 57KB

There is a huge gap here. I was able to 60% reduce one of my project rss, just by compiling the source code before runtime.

I wonder is there anyway to consume less memory for production usage? maybe unload/free the swc compiler after a while during runtime.

I can work on a PR, but i have no idea to start

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions