なんとなくちょっとだけ読んでみた。Firefoxにおいて、JSが使うメモリはコンパートメント、チャンク、アリーナの順に分解される。コンパートメントがどうも一番大きな区切りらしく、通常はこの単位でGCが呼ばれる。コンパートメントはホスト単位で確保されるらしい。チャンクは特に特徴のない塊で、アリーナは型毎に作られる。 GCはFull GCとコンパートメントGCがあり、後者ではコンパートメント単位でGCが行われる。TriggerGCが呼ばれるとFull GCが実行され、TriggerCompartmentGCが呼ばれるとCompartment GCが実行される。TriggerGCを呼んでいるところはgrepした限りではAllocateArenaとTriggerCompartmentGCの2つだけで、AllocateArenaはPickChunkに失敗したときにだけ呼ぶ。TriggerCompar