固定されたオブジェクトが「途中」にある場合、GCがメモリを圧縮できないため、管理されたヒープの固定オブジェクトが.NETのGCパフォーマンスに影響することがあります。しかし、ラージオブジェクトヒープは、とにかく圧縮されていないので、LOHのオブジェクトには適用しないでください。 LOHにあるオブジェクトを固定するための他の隠されたコストはありますか?または、GCパフォーマンスを低下させることなくLOH内のオブジェクトを安全にピン止めすることはできますか?LOHのオブジェクトを固定するとGCのパフォーマンスに影響しますか?
9
A
答えて
5
大きなオブジェクトヒープ(LOH)が圧縮されていないという理由は、が収集されていないことを意味するものではありません。The LOH is collectedオブジェクトを固定すると、将来の割り当てに影響が出ます。
オブジェクトは固定されているため、LOHで使用可能なメモリ量を効果的に縮小します(参照を保持している場合と同じです)。ラージオブジェクトを割り当てる別の要求が行われたときに、LOHに固定された/保持されている参照が多すぎると、より大きなラージオブジェクトを割り当てる問題に遭遇する可能性があります。
ガベージコレクションのマークアンドスイープの部分でマークが行われると、CLRはおそらくのすべての参照をルートとして固定しているので、コレクションのこの部分では影響がない可能性があります。誰かが大きなオブジェクトへの参照を保持していた場合、同じ方法で動作します。
割り当て解除はLOH上で同じように行われます(ブロックは単に使用可能であるとタグ付けされているため)、この操作は影響を受けません。
最後に、LOHが圧縮されていないため、この操作はGC中にこのヒープ上で行われることはありませんので、ここでは影響を受けません。
要約すると、LOHの割り当てはの間ではっきりとになる可能性がありますが、LOHのオブジェクトへの参照は固定されている可能性があります。
大容量のメモリブロックを割り当てて保持することは、システム全体に影響を与える可能性があることを忘れてはいけませんが、これらのコメントは、厳密にはLOHについてのです。
関連する問題
- 1. 特定の型はArrayListのパフォーマンスに影響しますか?
- 2. console.logsがシングルページアプリケーションの/タブのメモリとパフォーマンスに影響しますか?
- 3. Javaプログラムの最大メモリの設定はGCに影響しますか?
- 4. 「列IN(X)」と「列= X」 - クエリのパフォーマンスに影響しますか?
- 5. 単一パーティションコレクション(固定)がグローバルレプリケーションに影響しますか?
- 6. WebファームのネットワークロードバランサはGCの影響を受けますか?
- 7. パフォーマンスに対するRedisデータベースインデックスの影響
- 8. パフォーマンスに対するシステムタップの影響
- 9. パフォーマンスに対するjavax.servlet.Filterの影響?
- 10. ボックスシャドーがスケールのパフォーマンスに影響する
- 11. コードのリファクタリングはアプリケーションのパフォーマンスに影響しますか?
- 12. dmpファイルの作成はプログラムのパフォーマンスに影響しますか?
- 13. Verticaテーブルの列数はクエリのパフォーマンスに影響しますか?
- 14. アンドロイドライブラリのテスト方法は、アプリケーションのパフォーマンスに影響しますか?
- 15. エディタのエラーはデバイスのパフォーマンスに影響しますか?
- 16. Javaクラスのサイズはアプリケーションのパフォーマンスに影響しますか
- 17. estimatedRowHeightはどのようにパフォーマンスに影響しますか?
- 18. Object.observe()はどのようにパフォーマンスに影響しますか?
- 19. innodb_log_file_sizeはどのようにパフォーマンスに影響しますか?
- 20. ファイルサイズがパフォーマンスにどのように影響しますか?
- 21. Eclipseのリモートリソースをキャッシュすることはパフォーマンスに影響しますか?
- 22. Laravelフレームワークのパフォーマンスの影響
- 23. のsetTimeoutパフォーマンスの影響は
- 24. mysql_data_seekのパフォーマンスへの影響
- 25. ディープコピーのパフォーマンスへの影響
- 26. 条件付きインクルードファイルはASPのパフォーマンスに影響しますか?
- 27. EF linqクエリ句の順序はパフォーマンスに影響しますか?
- 28. コンソールアプリケーションの最小化はパフォーマンスに影響しますか?
- 29. コードの長さはパフォーマンスに影響しますか?
- 30. 条件の順序はパフォーマンスに影響しますか?
回答ありがとうございます。私は2番目の段落を得るのか分からない:ピンニングは参照を保持するよりも利用可能なメモリを縮小するのはなぜですか?私はいつもLOHに何かを割り当てることは、本質的に、十分な大きさの空きメモリブロックを探したり、新しいセグメントを割り当てることを意味しました。もしそうなら、どんなライブブロックも同じように扱われるべきです。 – Niki
@nikie:これ以上はありません。あなたが述べたのと同じ効果があります。私はそれに応じて私の答えを更新しました。これは小さくても重要な変更です。 – casperOne