在 Heroku 上使用 foreverjs 和 运行 避免 nodejs 应用程序产生垃圾

Avoid garbage with nodejs app using foreverjs and running on Heroku

根据 Heroku doc, to avoid garbage,您可以在 Procfile 中为 V8 提供标志:

web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js

但是,我的应用程序使用 foreverjs,我在 Procfile 中使用以下指令:

web: ./node_modules/.bin/forever -m 5 server.js

有没有办法提供像 --max_old_space_sizegc_interval=100 这样的标志并仍然使用 foreverjs

我不会永远使用 pm2,但似乎会永远使用此语法:

usage: forever [action] [options] SCRIPT [script-options]

我会尝试将它们放在脚本选项部分:

./node_modules/.bin/forever -m 5 server.js --max_old_space_size=460 --gc_interval=100

无论如何,我不会强制 gc 的时间... max_old_space_size 应该与您的节点进程可用的 RAM 一致,在您的情况下,如果您的节点进程占用超过 ~500M 的 RAM,它应该自己触发 gc 调用。