想知道带有V8引擎的node.js是否适合部署在有限的内存设备上(例如256mb)并与其他进程并行运行。
我读到它将连接机器的资源。有没有办法限制V8引擎本身的内存和处理使用?
答案 0 :(得分:14)
256 MB是足以运行Node.js的RAM(例如在Linux VPS实例上),假设没有运行其他内存生成软件。节点具有--max-stack-size参数,用于限制内存使用。
Node的单线程事件服务器模型通常可以有效地利用资源,但V8由于其JIT体系结构可能比使用解释/字节编译实现(例如PHP或CPython)使用更多的内存(同时提供卓越的性能)。此外,为了利用多个CPU内核,必须运行多个Node.js进程(与内存共享线程相比),有效地增加了内存使用量,但这种限制也适用于其最受欢迎的竞争对手。
关于“与其他进程并行运行”或“连接机器资源”,运行Node.js进程没有什么特别之处(除了不常见的多核问题);它的行为类似于任何用户程序。您可以在操作系统级别低优先级Node.js进程(例如,使用nice
),但根据您的设备/应用程序,I / O可能会成为一个问题。
纯粹从技术/有效性的角度来看,当需要真正的多处理支持和高并发性时,Erlang可能是高级语言的理想选择。
答案 1 :(得分:9)
对于V8和Node.js来说,64MB的RAM就足够了
请参阅“Compiling Node.js for Arduino YÚN” 还有“installing Node.js on Arduino YÚN”。
ArduinoYÚN使用64MB RAM运行linux。
答案 2 :(得分:3)
BeagleBone有256MB RAM(在正常配置中,没有虚拟内存),它运行node.js非常好。