nodejsのいくつか制限
1290 ワード
このごろのnodejsは国内での発展がとても速いです.この言語の「非閉塞、非同期、イベント駆動」の特徴は、高合併量のウェブサービスに非常に適しています.しかし、いわゆる「完璧な人はいない」ということは、nodejsには多くの長所がありますが、依然としていくつかの問題と欠陥があります.一つの言語の長所を知ることは重要ですが、その制限を理解して、現実的な開発にはできるだけ避けて、もっと重要です.
一.メモリ制限
nodejsはgoogleに基づくv 8エンジンです. ,v 8は単一のnodeのインスタンスに対してメモリ制限を行い、32ビットのシステムではデフォルトで512 mに制限され、64ビットのシステムでは1 gである.ビューア側ではjavascriptは1 Gのメモリがあれば十分ですが、webサーバー側では1 Gは足りないかもしれません.1 Gを例にとって、各接続は100 Mのメモリを占有します.このようにサービスは最大10個の接続しか確立できません.これは明らかにだめです.
nodejeはこの制限を変更するための実行パラメータを提供しているという.実行文:
ソリューション:
1.もっとnodejsプロセスを開始する
2.接続数の制限
3.ブザーを使う.http://zheye.org/asks/4da05d30fd503c24f9000001
二.GC(ゴミ回収)
javaと同じに、nodejsのV 8エンジンはシステムがあってごみの回収を行ったので、これはプログラマが制御することができないので、プログラマはこの対象がもう使わないことをマークするしかありません(obj=null)、次回gcにこの対象のメモリを回収させます.もっと怖いのは、v 8がgcを行う時、nodejsプログラムは運行を停止して、この時にこのプログラムに始まる要求はいずれも見落とされて、サービスが訪問することができないことをもたらします.
ソリューション:
1.プログラムを書くときは、新規にオブジェクトを生成するのではなく、オブジェクトをできるだけ多重化します.
一.メモリ制限
nodejsはgoogleに基づくv 8エンジンです. ,v 8は単一のnodeのインスタンスに対してメモリ制限を行い、32ビットのシステムではデフォルトで512 mに制限され、64ビットのシステムでは1 gである.ビューア側ではjavascriptは1 Gのメモリがあれば十分ですが、webサーバー側では1 Gは足りないかもしれません.1 Gを例にとって、各接続は100 Mのメモリを占有します.このようにサービスは最大10個の接続しか確立できません.これは明らかにだめです.
nodejeはこの制限を変更するための実行パラメータを提供しているという.実行文:
node test.js –max-old-space-size=1000
それでも制限があり、32ビットが1 g、64ビットが1.7 gです.ソリューション:
1.もっとnodejsプロセスを開始する
2.接続数の制限
3.ブザーを使う.http://zheye.org/asks/4da05d30fd503c24f9000001
二.GC(ゴミ回収)
javaと同じに、nodejsのV 8エンジンはシステムがあってごみの回収を行ったので、これはプログラマが制御することができないので、プログラマはこの対象がもう使わないことをマークするしかありません(obj=null)、次回gcにこの対象のメモリを回収させます.もっと怖いのは、v 8がgcを行う時、nodejsプログラムは運行を停止して、この時にこのプログラムに始まる要求はいずれも見落とされて、サービスが訪問することができないことをもたらします.
ソリューション:
1.プログラムを書くときは、新規にオブジェクトを生成するのではなく、オブジェクトをできるだけ多重化します.