2016-06-23 17 views
0

私は現在、Node.js/Socket.ioをmysqlデータベースと利用するプログラムを作成しています(これは私の最初のノードプロジェクトです)。大量のデータをNode.jsからクライアントに送信する速度を上げる方法はありますか?

  • クライアントに対してデータに対して行われた変更は、Node.jsに送信されて他のクライアントに送信され、処理されます。これは素晴らしいです。
  • 接続時に、プログラムに関連するすべてのデータがクライアントに送信されます。

大量のデータをテストするまでは、すべて私が望んでいた方法で動作していました。

私はここにボートがないと思う。私はNode.jsの代わりにPHPで単純にやり直すべきか、またはプログラムの非スナップを扱うだけで、すべてのデータを一度に読み込むのではなく、必要に応じてデータをロードする必要があるかどうか、クライアントにすべてのデータを送信するのはばかげているのだろうか? 。私がこれをしたのは、プログラムを非常に高速にしたいが、リロードする必要はほとんどないからです。しかし、今は1分の初期読み込み時間で多くのデータを調べています。

これは愚かではない可能性がある場合、クライアントがそれぞれの負荷時間に影響を与えないように、これを行う最適な方法は何ですか。また、負荷時間は2倍になります。ロードスピードを上げることができますか?サイドノートとして


私はページをロードし、コンソールを見ると、これまでで最大規模であるオブジェクトが私のNode.jsながら、完全に、クライアントにロードされているように見えるので、それは実際に奇妙なようコマンドプロンプトはまだ非常に同じ情報を吐き出して狂っている。

+0

_ "多くのデータ" _はどれくらいですか? – robertklep

+0

それぞれ約12個のキー値のペアを持つ2475個のオブジェクトの配列。 – jdgower

+0

これはどれくらいバイト単位ですか? – robertklep

答えて

2

遅いのソースを見なければなりません。言語になることはまずありません(でもそうかもしれません)。それは

  • データベースからの検索ですか? (memcacheのようなキャッシュのようなものを考えてください)
  • サーバで処理していますか? (処理された結果をキャッシュし、高速なサーバーまたは高速な言語を使用する)
  • ネット経由での送信? (送信されるデータを減らし、圧縮を改善する)
  • どこか他に?
+0

ありがとうございます。それはおそらく送信です。これは現時点ではすべてローカルであることに注意してください(サーバーとクライアントの同じマシン)。私が送信と言うのは、emitステートメントをコメントアウトして(そしてまだdbのルックアップ、javascriptループなどを実行している)、最後まで到達するのに遅延がないからです。 – jdgower

+0

簡単に言えば...遅くする必要がありますか? 2475オブジェクトの配列で、通常はクライアントに送るのに20-30秒かかります。 – jdgower

+0

@jdgower - あなたは正しい軌道に乗っています。 'curl'やそれに類する(高速な)クライアントを使ってローカルネットワーク上にアクセスし、どれくらい時間がかかるかを見てください。 – Malvolio

関連する問題