ラージオブジェクトヒープと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. Conwayの生命のゲーム:第2世代から第3世代への更新
- 2. UILabelが第3世代iPodと第4世代iPodで異なって表示されています
- 3. クラウドSQL第1世代から第2世代への移行
- 4. ヒープの新世代とtenured世代の違い
- 5. App EngineとクラウドSQLの第二世代
- 6. トリガークラウドsql第2世代
- 7. Terraform(v0.7.4)とGoogle Cloud SQL第2世代
- 8. 第2世代GoogleクラウドSQL - App Engine
- 9. 失敗(および第二世代?)
- 10. MVC 3世代のURL
- 11. GC。第2世代および大型オブジェクトのヒープのみの収集
- 12. resourceVersionと世代の違いは何ですか?
- 13. オブジェクトが若い世代から旧世代に移動する原因
- 14. テストデバイスとしてiPod touch第4世代が良いのですか?
- 15. スカラ - 共通の特徴の第二世代の継承
- 16. iPad上でのシェーダの低性能第1世代
- 17. Google Cloud SQLの第2世代インスタンス名への移行
- 18. gcloudコマンドラインを使用した第2世代Cloud SQLの作成
- 19. 契約第1対契約現在の世代で最後に
- 20. Google Cloud sqlは、第1世代から第2世代へのダウンタイムを最小限から最小限にとどめます。
- 21. .NETコレクションとラージオブジェクトヒープ(LOH)
- 22. Google Cloud SQL MySQL第2世代同時接続?
- 23. Linuxで第6世代iPod nanoにアクセスする
- 24. Google App Engine標準環境からCloud-SQL第2世代インスタンス
- 25. App Engine(第2世代CloudSQL)からCloudSQLに接続するGO
- 26. gen_server:呼び出し - 1が第二世代サーバーMOD、である - -
- 27. Google Cloud SQL(第2世代)に接続したときの通信リンクのエラー
- 28. オブジェクトを自動的に第2世代のGCに割り当てることができますか?
- 29. iOSのプロビジョニングとキーチェーン世代
- 30. 実世界Haskellの第3章エクササイズ:1つの値コンストラクタとのバイナリツリー
第2世代のヒープを意味しますか? –
もしcount form 0 1 2 .. 2番目のもの –