Cron 作业与 NodeJS setInterval 以获得最佳性能

Mel*_*tis 6 cron node.js raspbian

我正在构建一个简单的 nodejs 脚本,它根据我当前的 IP 更新 DNS 记录。该脚本工作正常,但我对如何运行它有一些担忧。必须每 5 分钟检查一次我的 IP,我正面临着两难选择。

我应该使用 Node 的setInterval还是应该创建一个 cron 作业?哪个将消耗最少的 RAM 和 CPU?请记住,该脚本在具有 512MB ram 和只有 1 个内核的 Raspberry Pi Zero 上运行。

我知道这cron似乎是一个更好的选择,但它有多好?考虑到我的规格,这很重要吗?

chi*_*cks 5

cron方案的优点

  • 减少 90% 的内存消耗
  • 有效消除内存泄漏
  • 代码每次都会重新加载所有库,以便更新在下次运行时生效,而不会增加复杂性

守护进程的优势

  • 加载时间只发生一次,因此后续运行的磁盘 I/O 和 CPU 较低,因为您不会解析源代码或拉入所有库
  • 用于后续运行的较低 CPU 和磁盘 I/O 也意味着有更多的资源可用于 Raspberry 的主要应用程序。
  • Linux 应该换出你没有使用的内存。不过,这可能会很慢,具体取决于您的存储。

结论

我同意 Alexander T 的观点,这cron似乎可能会更好,但如果您的主应用程序对后台进程敏感,那么使用守护程序可能会更好。