想知道Node.js与V8引擎是否适合部署在内存有限的设备上(例如256MB),并与其他进程并行运行。
我读到说它会占用机器的资源。有没有办法限制V8引擎本身的内存和处理使用量?
256 MB的RAM足以运行Node.js(例如在Linux VPS实例上),假设没有运行其他占用内存的软件。Node具有--max-stack-size参数来限制内存使用。
由于其JIT架构,V8可能会比解释/字节编译实现(如PHP或CPython)使用更多的内存(同时提供更优越的性能),但Node的单线程事件驱动服务器模型通常可以有效地利用资源。此外,要利用多个CPU核心,必须运行多个Node.js进程(而不是内存共享线程),从而有效地增加了内存使用量;但这种限制也适用于其最流行的竞争对手。
就与其他用户程序类似,Node.js进程在“与其他进程并行运行”或“挂接机器资源”的方面并没有什么特别之处(除了常见的多核问题)。您可以在操作系统级别上降低Node.js进程的优先级(例如使用nice命令),但根据设备/应用程序的不同,I/O可能是更大的问题。
从技术/效率的角度来看,当需要真正的多处理支持和高并发性时,Erlang可能是更理想的高级语言选择。
64MB的RAM对于V8和Node.js足够了。
请见"为Arduino YÚN编译Node.js" 以及"在Arduino YÚN上安装Node.js"。
Arduino YÚN使用64MB RAM的Linux系统。