ラージオブジェクトヒープとGC第3世代オブジェクトの違いは何ですか?第3世代オブジェクトとラージオブジェクトヒープの違い
答えて
LOH(ラージオブジェクトヒープ)は、大きなオブジェクトが直接割り当てられ、収集されるまでそこにとどまる単一のヒープです。オブジェクトは、そのサイズに基づいてLOHに直接割り当てられる。 85000バイト以上です。
世代オブジェクトは、単一のヒープであるSOH(Small Object Heap)に割り当てられる「小さな」オブジェクトです。 SOH内のオブジェクトは、最大世代まで生き残ったコレクションの数を示す関連世代を有する。世代番号が0から始まるとき、世代2のオブジェクトは、世代0,1,2のうち少なくとも3つのコレクションから生き延びたので、第3世代として記述することができる。
世代はガベージスキャンの最適化に役立ちます。長寿命のオブジェクトは、コレクションに残っているほど世代番号が増え、数の多い世代はスキャン頻度が低くなります。このメカニズムにより、短命ではないオブジェクトがスキャンされる頻度が少なくなり、不必要にスキャンされることになります。世代スキームはSOHに適用され、多くのオブジェクトが存在するヒープの最適な最適化として見られます。
更新
は、私の知る限りLOHオブジェクトを理解し、最大世代であると報告されているが、私は、これは単にデフォルト値であると信じています。それらは実際には何世代にもない、すなわち世代2のSOHオブジェクトであり、LOHオブジェクトは同じ「リスト」にはない。しかし、@Henkによって指摘されているように、世代2のコレクションを実行するとき、LOHオブジェクトもこの時点で収集されます。概念的には、世代2とLOHとの間には関係があります。これは、.NET 2.0のように正しいです:
参照:第2世代のコレクションがある場合にのみ、それらを収集しているためLarge Object Heap Uncovered
ビューの発生点からは、ラージオブジェクトは2世代に属しています。
収集関係は明らかであるものの、それが保持していない例では、世代圧縮です。世代が収集されると、世代も圧縮されます。しかし、LOHは圧縮されていないので、第2世代のオブジェクトに起こるすべてがLOH内のオブジェクトに発生するとは言えません。
[Test]
public void large_object_heap_objects_are_reported_as_max_generation()
{
int[] bling = new int[85000/4];
int maxGen = GC.MaxGeneration;
int objectGen = GC.GetGeneration(bling);
Assert.AreEqual(maxGen, objectGen, "Large object is at max generation.");
}
85kbを超えるオブジェクトは常にLOHに移動し、SOHには移動しません。 –
私はLOHオブジェクトも世代に属していると思っていますが、100%確実ではありません。しかし、彼らはマークされ、同じ掃引されている間、彼らは圧縮されていません。 –
LOHには何世代もありませんか? –
- 1. UILabelが第3世代iPodと第4世代iPodで異なって表示されています
- 2. ヒープの新世代とtenured世代の違い
- 3. 第2世代GoogleクラウドSQL - App Engine
- 4. MVC 3世代のURL
- 5. GC。第2世代および大型オブジェクトのヒープのみの収集
- 6. テストデバイスとしてiPod touch第4世代が良いのですか?
- 7. スカラ - 共通の特徴の第二世代の継承
- 8. iPad上でのシェーダの低性能第1世代
- 9. Google App Engine標準環境からCloud-SQL第2世代インスタンス
- 10. Linuxで第6世代iPod nanoにアクセスする
- 11. Google Cloud SQL(第2世代)に接続したときの通信リンクのエラー
- 12. オブジェクトを自動的に第2世代のGCに割り当てることができますか?
- 13. 実世界Haskellの第3章エクササイズ:1つの値コンストラクタとのバイナリツリー
- 14. .NETコレクションとラージオブジェクトヒープ(LOH)
- 15. 第2世代のiPod Touch(4.2.1)でコンパイルしても動作しないアプリケーション
- 16. iPod Touchの第4世代はBluetooth LEをサポートしていますか?
- 17. GCは第2世代をいつ収集するのですか?
- 18. iOSのプロビジョニングとキーチェーン世代
- 19. iphone - iPod Touch第2世代でXCode 4.2とiOS 5 SDKを実行
- 20. 古い世代のオブジェクトの統計情報ですか?
- 21. 世代クエリ
- 22. NHibernateのクエリ世代
- 23. jQuery UI選択可能:第一世代の子供にのみバインド
- 24. 第1列と第2列の値に基づく第3列
- 25. 古い世代でオブジェクトを作成できますか?
- 26. 2つのオブジェクトを比較しようとすると、その違いを含む第3のオブジェクトを抽出しようとしています
- 27. モバイルネットワークの世代と帯域幅
- 28. 次世代MapReduceのアーキテクチャと設計ドキュメント
- 29. ガベージコレクタの世代とは何ですか?
- 30. 私の重力シミュレーションは、第1象限と第3象限のオブジェクトを反発しています
第2世代のヒープを意味しますか? –
もしcount form 0 1 2 .. 2番目のもの –