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はこの制限を変更するための実行パラメータを提供しているという.実行文:    
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.プログラムを書くときは、新規にオブジェクトを生成するのではなく、オブジェクトをできるだけ多重化します.