WebSocketで頻繁に(フレームごとに少なくとも1回)バイナリメッセージを受信し、canvas/webglを使用してデータをプロットするアプリケーションがあります。私はかなり良い鋸歯の記憶プロファイルを持っていることに気づいた。短いデータがたくさん集まっています。 WebSocket頻繁にメッセージをゼロコピーする
私はonmessage
からオブジェクトを受けていますので、これは少なくとも一度描画した後、デ・参照するために使用されているすべての16msの、私は驚かれていません。
私の質問です:これを避ける/最小限にするためのヒントはありますか? WebSocket APIに基づいて、ソケット受信呼び出しごとに新しいメモリを割り当てる代わりになるようなことはありません。別の言語/環境では、メモリをあらかじめ割り当てておき、そのバッファに受信して、短命のオブジェクトのメモリを常に割り当てないようにしていましたが、ブラウザのJavaScriptでこれを実現する方法は考えられません。
参考までに、私のフレームビューです。
そのアイドル時間がガベージコレクションであるかどうかはわからないのですか?任意のdev - toolsの忍者の洞察力は非常に高く評価されるだろう。私はあなたの問題を理解していますが、他の言語でのようにグローバル配列を宣言し、例えば、循環バッファとして使用することができます
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_ManagementでJSでのメモリ割り当てに関する詳細な情報を見つけることができます
?何かを始めた?フィドル? – Anonymous0day
WebSocket上のラズベリーパイからセンサーの日付をストリーミングするのと同じ問題があります。私は恐れがあり、javascriptでWebSocketのメモリ割り当てを妨害する方法はありません。私の研究は結果をもたらさなかった。 – windm
あなたは何を達成したいですか?プログラムの実行期間と一貫性があり、長寿命のパフォーマンスがどれほど重要ですか?少しのコードやコードサンプルを見るのは大変です –