問題タブ [fragmentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - ヒープの断片化を回避する方法は?
私は現在、大量のメモリを必要とする医用画像処理のプロジェクトに取り組んでいます。ヒープの断片化を回避し、すでにメモリにロードされている画像データへのアクセスを高速化するためにできることはありますか?
アプリケーションはC++で記述されており、WindowsXPで実行されます。
編集:アプリケーションは、再フォーマット、ルックアップテーブルの計算、目的のサブ画像の抽出など、画像データを使用して前処理を行います...アプリケーションは処理中に約2 GBのRAMを必要とし、そのうち約1.5GBを使用できます。画像データ用。
.net - .NET ラージ オブジェクト ヒープと JSON の相互作用
JSON を使用してデータをクライアントにシリアル化する asp.net アプリケーションがあります。負荷が特定のレベルに達すると、アプリは GC で過度の時間を費やし、WinDbg/SOS および関連ツールでしばらく時間を費やした後、生成された JSON のサイズが原因で、かなりの量の LOH 断片化が発生しているように見えます。多くの場合、LOH の 86K 境界を超えるほど十分に大きくなります。
私の質問 2 倍 1) JSON 生成に影響を与え、LOH の断片化を引き起こすこの特定のシナリオを実行した人はいますか? 2) それを処理する方法について何か提案はありますか?
linux - 送信元ホストでIPパケットがフラグメント化される頻度はどれくらいですか。
IPペイロード>MTUの場合、ルーターは通常IPパケットをフラグメント化します。最後に、すべてのフラグメント化されたパケットは、フィールドIP-ID、IPフラグメントオフセット、およびフラグメンテーションフラグを使用して宛先でアセンブルされます。IPペイロードの最大長は64Kです。したがって、L4が64Kのペイロードを引き渡すのは非常に妥当です。L2プロトコルがイーサネットの場合(これはよくあることですが)、MTUは約1600バイトになります。したがって、IPパケットは送信元ホスト自体でフラグメント化されます。ただし、LinuxでのIP実装について簡単に検索すると、最近のカーネルでは、L4プロトコルはフラグメントに対応していることがわかります。つまり、MTUに近いサイズのバッファーを渡すことで、IPのフラグメント化作業を節約しようとします。
これらの2つの事実を考慮すると、IPパケットが送信元ホスト自体でフラグメント化される頻度について疑問に思っています。それは時々/まれに/決して起こりませんか?Linuxカーネルの断片化のルールに例外があるかどうか(つまり、L4プロトコルが断片に対応していない状況があるかどうか)を知っている人はいますか?これは、Windowsなどの他の一般的なOSでどのように処理されますか?一般に、IPパケットはどのくらいの頻度で断片化されますか?
utility - ディスク フラグメンタを実装するにはどうすればよいでしょうか。
ディスク デフラグ アリーナで試してみたいアイデアがいくつかあります。実装の前段階として、ディスクを断片化された状態にすることができると便利だろうという結論に達しました。これは、最適化された状態よりも実現が難しい状態のように思えます。市販のデフラグ ツール会社はおそらくこの問題を解決したと思います。
だから私の質問.....
フラグメンタを実装するにはどうすればよいでしょうか? デフラグ ツールをテストするために使用されるというコンテキストでは、どのような意味がありますか?
c# - WPF メモリの断片化
メモリの断片化の問題だと思います。
最近、WinForms アプリケーションを WPF アプリケーションに移植しました。このアプリケーションが行ういくつかの画像処理があり、この処理はアプリの WinForms バージョンで常に機能していました。WPF に移動すると、処理が終了します。ライブラリへのデバッグはランダムな場所で停止しますが、常に null の配列、つまり割り当てに失敗します。
処理自体は ap/invoke によって呼び出される C++ ライブラリで行われ、かなりメモリを消費します。指定された画像が N x M ピクセルの大きさの場合、画像は N x M x 2 バイトの大きさになります (各ピクセルは unsigned short で、グレースケール画像です)。処理中、float 空間にある画像ピラミッドが作成されるため、合計メモリ使用量は N x M x (2 + 2 + 4 + 4 + 4 + 4) になります。ここで、最初の 2 は入力、2 番目は2 は出力、最初の 4 は float の入力、2 番目の 4 は 0 番目のレベル差画像、最後の 2 つの 4 はピラミッドの残りの部分です (これらはピラミッドであり、各レベルはそれぞれのサイズの半分であるため)方向、これらの 4 は上限です)。したがって、5000x6000 の画像の場合、600 MB であり、メモリに問題なく収まるはずです。
(マーシャリングを使用すると、メモリ要件がさらに N x M x 4 増加する可能性があります。つまり、C# 側の入力イメージと出力イメージ、および同じ配列が C++ 側にコピーされます。マーシャリング要件はさらに大きくなる可能性があります。 )
WinFormsと比較してWPFはどの程度断片化されていますか? この処理を実行する前にメモリを統合する方法はありますか? 破損が発生したときのランダムな性質のために断片化が問題であり、それは常にメモリ割り当ての問題であると思われます。
または、ソケットなどを介したデータ転送を使用して、処理を別のプロセスとして実行することにより、この問題を完全に回避する必要がありますか?
c# - .NETでの作業中にファイルの断片化を制限するにはどうすればよいですか?
私のアプリケーションでは、時間の経過とともに小さなデータビットを大きなファイルに収集しています。その結果、ターゲットファイルが過度に断片化されます。.NETで出力ファイルの断片化を制限するために何ができるでしょうか?
sql-server - 断片化されたインデックスを再構築して再インデックス化するためのスクリプト?
「avg_fragmentation_in_percent」が特定の制限を超えた場合に断片化されたインデックスを再構築および再インデックス化するためのスクリプトを誰かが提供できますか (カーソルが使用されていない場合)。
c# - Begin * End *メソッドを使用する場合、C#でパケットの断片化を処理する実際の例はどのようになりますか?
非同期ソケットプログラミングで十分に遊んだ後、サーバーがチャンク化されたペイロード(つまり、同じバッファーにある複数の完全なペイロード)を受信していることに気付きました。だから私は次のことを思いついた:
そして、パケットの断片化に気づきました(つまり、完全なペイロードが一緒にチャンク化されていると思っていたのは必ずしもそうではありませんでした)。これにより、前のコードが次のように変更されました。
***これについてどうすればいいのかさえわからないので、そのためのコードを見たいと思います。未完成のペイロードをバッファの先頭にコピーし、そこからピックアップする必要があると思いました。
私が含めた擬似コードは、私が使用しているBegin * End *メソッドに基づいています(ここにある*Asyncセットのメソッドを使用する必要があることを認識しています-> http://msdn.microsoft.com/en-us /library/system.net.sockets.socketasynceventargs.aspx <-しかし、私の全体的な質問はまだ当てはまると思います)。
私は2つの質問に対する答えを探しています-すなわち:
- このアプローチは正しいですか、それとも何かが足りませんか?
- C#でパケットの断片化を処理する実際の例はどのように見えますか?
編集:私はrawソケットを使用しています。
よろしくお願いします。
編集:JohnSaundersとGregHewgillは、データをストリームとして扱うという点を指摘しましたが、それは、断片化されることがある最後のチャンク化されたペイロードを処理する方法の具体的な例を提供しません。
編集:私はここでジョン・スキートの答えを読みました。これは基本的に私が見た他の答えと同じ線に沿っていますが、私がしなければならないことはすでに得ていますが、それを行う方法はわかっていないので、あまり役に立ちません。
編集:断片化の意味を詳しく説明するには、次の受信バッファーを検討してください。
- 224TEST3foo3bar
- 224TEST3foo3bar224TEST3foo3bar
- 224TEST3foo3bar224TEST3foo
- 3bar224TEST3foo3bar
編集:私はこれとこれが私をここに導くことを見つけました。Vadym Stetsiakはほぼすべてをクリアしました(彼は私が探していた答えの1つでした)。
filesystems - 内部および外部の断片化
ファイルにディスクスペースを割り当てる際の内部断片化と外部断片化の違いを教えてもらえますか?