C#とJavaの言語選定にあたり、実行環境の比較をするため、ガベージコレクタについて調べていました。 .NET Frameworkのガベージコレクション方式は世代別GCですが、Javaとは随分異なっています。特に顕著に異なっているのがLOH(Large Object Heap)と呼ばれる大きなサイズのオブジェクトを格納する専用ヒープ領域がある点です。現在のバージョンでは、85KB以上のサイズのオブジェクトは世代別管理のヒープ(generation 0)ではなく、このLOHに割り当てられます。 この仕組みについては、MSDNマガジン(オンライン)の記事に詳しくあります(以下URL)。 CLR徹底解剖:大きなオブジェクトヒープの秘密 LOHは、第2世代(Javaで言えばOld世代)のGCと同じタイミングでGCがかかります。LOHでは、オブジェクトか回収された後、コンパクションを実施しないため、