带V8的Node.js适合有限的内存设备?

Ton*_*shi 20 v8 node.js

想知道具有V8引擎的node.js是否适合部署在有限的存储设备(例如256mb)上并与其他进程并行运行.

我读到它将连接机器的资源.有没有办法限制V8引擎本身的内存和处理使用?

jho*_*ter 14

假设没有运行其他内存生成软件,256 MB足以运行Node.js(例如在Linux VPS实例上).节点具有--max-stack-size参数,用于限制内存使用量.

Node的单线程事务服务器模型通常可以有效地利用资源,但V8由于其JIT体系结构可能比使用解释/字节编译实现(例如PHP或CPython)使用更多的内存(同时提供卓越的性能).此外,为了利用多个CPU内核,必须运行多个Node.js进程(与内存共享线程相比),有效地增加了内存使用量,但此限制也适用于其最受欢迎的竞争对手.

"与其他进程并行运行""连接机器资源"方面,运行Node.js进程没有什么特别之处(除了不常见的多核问题); 它的行为类似于任何用户程序.您可以在OS级别中对Node.js进程进行低优先级排序(例如,使用nice),但根据您的设备/应用程序,I/O可能会成为一个问题.

纯粹从技术/有效性的角度来看,当需要真正的多处理支持和高并发性时,Erlang可能是高级语言的理想选择.


Mat*_* T. 9

对于V8和Node.js,64MB的RAM就足够了

请参阅" 为ArduinoYÚN编译Node.js "以及" 在ArduinoYÚN上安装Node.js ".

ArduinoYÚN使用64MB RAM运行linux.

  • 当然,在这样的设备上你是非常有限的,但"只有非常简单的脚本"也是非常相对的.在我的实验中,具有YÚN一半RAM的TL-MR3020正在执行以下操作:*提供HTML5 Web应用程序;*每200ms在WebSocket上接收JSON消息;*每隔50ms在WebSocket Secure上发送JSON消息;*每40ms在UDP上发送和接收JSON消息;*对文本文件的日志记录操作.对于2或3个客户端,所有这些都可以正常工作,然后消息变得慢一些. (6认同)

Dan*_*olm 6

BeagleBone有 256MB RAM(在正常配置下,没有虚拟内存),并且它可以很好地运行Node.js。