問題タブ [heap-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.

0 投票する
3 に答える
3071 参照

c++ - 64ビットランドでのヒープの断片化

以前、長時間実行される C++ デーモンに取り組んだとき、ヒープの断片化の問題に対処しなければなりませんでした。連続したヒープ領域が不足しないようにするには、大きな割り当てのプールを保持するなどのトリックが必要でした。

これはまだ 64 ビット アドレス空間の問題ですか? パフォーマンスは私にとっては問題ではないので、コードを簡素化し、バッファー プールのようなものはもう扱いません。この問題についての経験や話はありますか? 私は Linux を使用していますが、同じ問題の多くが Windows にも当てはまると思います。

0 投票する
2 に答える
2042 参照

c++ - カスタム メモリ マネージャーでの断片化との戦い

ヒープ割り当て用の ac/c++ メモリ マネージャー (オーバーロードされた new/delete および malloc/realloc/free、Doug Lea の malloc に基づいていますが、wait free になるように設計されています) を作成しましたが、断片化に問題があるようです。マネージャーによる断片化を回避するための優れた戦略を詳しく説明している優れたリソースはありますか?

既に割り当てられているメモリを再配置することはできず (GUID を持つスマート ポインターを使用しない)、ヒープ割り当ての代わりにプールを使用するようにシステムを書き直すことは不可能であることに注意してください。

ありがとう、
グラント

0 投票する
1 に答える
5576 参照

.net - 私のヒープは断片化されていますか

ピン留めと断片化について読んでいます。大量の空き容量を考えると、断片的に見えます。私は今それを追跡する必要があると思います。

考え?フィードバック?

0 投票する
1 に答える
782 参照

c# - System.Security.Policy.Evidence、Web サービス、および LoH の吹き飛ばし

開発された新しいアプリケーションは、Web サービスを多用しています。定期的にメモリ不足の例外が発生するようになりました (使用量の増加に伴い)。メモリ ダンプを確認すると、同じサイズのバイト [] が多数あることに気付きました。これらの byte[] のハンドルを見ると、それらが System.Security.Policy.Evidence によって参照されていることに気付きました

さらに調べてみると、これらのメモリ割り当ては、Web サービス クラスを含む実際のアセンブリ (dll) であることがわかりました (特にアセンブリのうちの 2 つは 128 回と 115 回メモリ内にありました)。ここでいくつかの情報を見つけました --> blogs.msdn.com/tess/archive/2008/06/25/asp-net-memory-leak-byte-arrays-rooted-in-system-security-policy-evidence.aspx

そしてここ --> blogs.javista.com/2009/03/18/best-practices-for-crm-memory-usage/

しかし、この問題に関する他の多くの参照を見つけることができませんでした。(セキュリティ ポリシーをチェックするために Web サービス アセンブリをメモリにロードする .NET フレームワーク)。

現在、私が目にしている唯一の解決策の 1 つは、Web サービスのアセンブリを、ライブラリを参照する小さなアセンブリに分離することです。

ポリシーをチェックするために .NET フレームワークがアセンブリ全体をメモリにロードする必要がある理由がわかりません。他の誰かがこれに遭遇したかどうか、およびあなたのソリューションが何であるかを確認したかったのです。

ありがとう、ダン

0 投票する
2 に答える
669 参照

flash - Flash/ActionScript メモリの断片化

マーク アンド スイープに加えて、.Net と Java の両方のガベージ コレクターは圧縮フェーズも実行して、メモリの断片化を削減します。Flash 9 ガベージ コレクタの圧縮/最適化フェーズに関するドキュメントを見つけることができません。Flash には圧縮フェーズがありませんか?

0 投票する
4 に答える
8922 参照

c++ - メモリ断片化プロファイラー

適切なメモリ断片化プロファイラーはありますか? (Linux gcc バージョンがいいでしょう)。カスタム malloc/free 関数を使用しているため、Valgrind はこれを分析できません。

ありがとう、アンドリュー

0 投票する
5 に答える
4384 参照

c++ - C++ヒープアロケータとSTLの最適化

単純なインクリメントヒープアロケータを単純な圧縮デフラグツールと組み合わせて使用​​する、自己最適化メモリマネージャを作成しようとしています。

大まかなスキームは、最下位のメモリアドレスから上に向かってブロックを割り当て、最上位のメモリアドレスから下に向かって簿記情報を保持することです。

メモリマネージャはスマートポインタを返します-ブーストのintrusive_ptrは、実際のメモリブロックを指し、ブロックを簡単に移動できるように間接レベルを与える簿記構造体にとって最も明白なようです。

デフラグツールは、「生成」ブックマークからヒープを圧縮してプロセスを高速化し、一度に一定量のメモリのみをデフラグします。ブロック自体への生のポインタは、次のデフラグパスまで有効であるため、パフォーマンスが向上するまで自由に渡すことができます。

このための特定のアプリケーションはコンソールゲームプログラミングであるため、各フレームの最初または最後にデフラグパスを比較的安全に実行できます。

ですから、私の質問は、この種の割り当てスキームをSTLと組み合わせて使用​​した人がいるのではないかと思いますが、STLを完全に破壊してしまうのではないかと思います。std :: list <intrusive_ptr>がintrusive_ptrレベルで機能しているのを見ることができますが、stlリストノード自体の割り当てについては、next / prevポインターをオーバーライドして、intrusive_ptr自体にするか、またはこのより動的なものと並んで標準的なヒープアロケータ。

0 投票する
4 に答える
4087 参照

c++ - C++ サーバー プログラムでヒープの断片化を回避するにはどうすればよいですか?

ヒープの断片化により、何ヶ月も連続して実行されることが予想されるサーバー アプリケーションが、メモリ不足であると考えて突然誤動作を開始する可能性があります。

VC++ サーバー アプリケーションでランタイム ヒープの断片化を最小限に抑えるために最善を尽くしたにもかかわらず、それでも断片化が蓄積され、問題が発生すると仮定します。たとえば、毎月または 50 万回のリクエストが処理されるたびに、アプリケーションを自動的に再起動することができます。安全に停止し、新しいヒープで安全に再開できます。ヒープの断片化を回避するために他に何ができますか?

0 投票する
1 に答える
2332 参照

delphi - デルファイアプリケーションのメモリの断片化を監視または視覚化する方法

デルファイアプリケーションのメモリの断片化を監視または視覚化するにはどうすればよいですか?

0 投票する
4 に答える
1075 参照

.net - マネージド ヒープの断片化にいつ対処するか

Josh Smith のブログ エントリを読んでいて、「マネージ ヒープの断片化を減らす」ためにキャッシュ メカニズムを使用していました。彼のキャッシングは、実行速度がわずかに遅くなりますが、作成される存続期間の短いオブジェクトの数を減らします。

C# のようなマネージ言語でのマネージ ヒープの断片化はどの程度の問題ですか? 問題があるかどうかをどのように診断できますか? 通常、どのような状況でそれに対処する必要がありますか?