web-dev-qa-db-ja.com

限られたメモリデバイスに適したV8のNode.js?

限られたメモリデバイス(256MBなど)にデプロイし、他のプロセスと並行して実行するのに適したV8エンジンを搭載したnode.jsを知りたいです。

マシンのリソースを接続することを読みました。 V8エンジン自体のメモリと処理使用量を制限する方法はありますか?

20
TonyTakeshi

256 MBは、Node.jsを実行するのに十分な量のRAM(Linux VPSインスタンスなど)です。他のメモリを大量に消費するソフトウェアが実行されていないと仮定します。Node has --max-stack-size引数でメモリ使用量を制限します。

ノードのシングルスレッドイベントサーバーモデルは一般にリソースを効率的に使用しますが、V8はそのJITアーキテクチャにより、PHPまたはCPython(提供中)などのインタープリター/バイトコンパイルされた実装よりもいくらか多くのメモリを使用する可能性がありますまた、複数のCPUコアを利用するには、(メモリ共有スレッドではなく)複数のNode.jsプロセスを実行して、メモリ使用量を効果的に増やす必要がありますが、この制限は最も人気のある競合他社にも当てはまります。

"他のプロセスと並行して実行する"または"マシンのリソースを接続する"に関しては、Node.jsプロセスの実行について特別なことは何もありません(珍しいマルチコアの問題ではありません);他のユーザーランドプログラムと同様に動作します。 OSレベルでNode.jsプロセスの優先度を低くすることができますが(たとえば、Niceを使用)、デバイス/アプリケーションによっては、I/Oがより問題になる可能性があります。

純粋に技術的/有効性の観点から、真のマルチプロセッシングサポートと高い同時実行性が必要な場合、Erlangはおそらく高級言語にとってより理想的な選択肢です。

14
jholster

64MBのRAMはV8とNode.jsには十分です

ArduinoYÚN用にNode.jsをコンパイルする "」および「 ArduinoYÚNにNode.jsをインストールする "」を参照してください。

ArduinoYÚNは64MBのRAMでLinuxを実行します。

9
Matteo T.

BeagleBone は256MB RAM(通常の構成では仮想メモリなし))で、node.jsを非常にうまく実行します。

3
Daniel Chisholm