私は、アプリケーションがあるときにサーバーからクライアントに転送されるJSONデータの約50mb(圧縮方法によって異なる可能性があります)を必要とするexpressJSアプリケーションを構築しています最初にロードされます。私は、メモリ使用量が多いためにクライアントブラウザをクラッシュさせないように、これを行う方法を見つけるのが難しい。私はソケットを使用しようとしましたが、メモリ使用量をクロムで最大1500MBにまで上げることができますが、これは容認できません(これは完全なデータセットでさえありません)。私はまた、データをクライアント側(私もファンではない)で評価する必要があるまで動作するように見えるハンドルバーレンダリング(app.get上で)の引数としてデータを渡そうとしました。これは文字列として渡す必要があるためです。この時点で、メモリ使用量は再び1500MB +であり、クラッシュを引き起こします。この量のデータをローカルで使用すると、快適な500〜600MBのメモリ使用量で座っています。だから、問題を引き起こさずにこのデータをクライアントに転送する最良の方法は何ですか?ExpressJSサーバーからクライアントへのJSONデータの1回転送
データは、このようなものになりますので、
var worldData = {
'x-164z144': {
'blocks': {
'y1': {
'color': 16711680,
'owner': 'bar456'
},
'y5': {
'color': 45654815,
'owner': 'foo123'
}
// possibly more data here in future
}
}
をので、快適に一度、サーバからクライアントに送信できるデータの最大量は何ですか?私が自分のアプリを構築しようとしていた方法は、すべてのデータを実際に一度に必要とされていましたが、実現できない場合は回避する必要があります。 – dyarbrough
@dyarbroughパフォーマンスの問題は、サイズだけでなくデータの形状、つまり深くネストされた構造とフラットな構造、数値や文字列などのタイプにも依存します。 1つの長い文字列では、非常に深くネストされたオブジェクトはそれほど多くのリソースを必要としません。実際にデータとユースケースでテストする必要があります。私はデータやユースケースについて何も知らないので、何も言い表すことは不可能です。 – rsp
データ構造の元のポストを参照してください。データは非常にシンプルですが、かなり深く入れ子になっています。 XZの位置が最も低い位置にあり、yの位置(高さ)がブロックに関する情報を与えます。私がこれについてもっと学ぶことができる良い資源? – dyarbrough