Open erfanium opened 10 months ago
Don't use register in production, it's for development usage
@Brooooooklyn well there is a similar threads in ts-node: https://github.com/TypeStrong/ts-node/issues/104 i can reference. that's an old debate
Many are using ts-node in production, so maybe it's better to create this module not only for development usage
You can use it in production for free, but it is not recommended. and I guess it would never be officially supported
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 easiereverything works fine, but the extra memory usage caused by swc is a downside to me.
to reproduce:
node main.js
: rss: 45MB, heapTotal: 6MB, heapUsed: 6MB, external: 421KB, arrayBuffers: 18KBdeno main.ts
: rss: 52MB, heapTotal: 11MB, heapUsed: 10MB, external: 76KB, arrayBuffers: 0node -r @swc-node/register main.ts
: rss: 102MB, heapTotal: 30MB, heapUsed: 23MB, external: 592KB, arrayBuffers: 57KBThere 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