« メモリ断片化低減対策 | メイン | 画面の回転イベント »

2014年01月14日

吉里吉里Z 開発:: グローバルヒープもHeapCompact可能に

    

-ghcompact オプションで、グローバルヒープも HeapCompact 可能にした。
実行されるのは、System.doCompact が clAll 指定で呼ばれた時。
LFH が有効な時は、doCompact タイミングで HeapCompact 実行しても効果は薄い様子。
Bitmap 用の separateheap で Free されるたびに HeapCompact しているのはかなり効果的な模様。
だから、-ghcompact を指定する意味はあまりないかもしれない。

後、System.dumpHeap() を追加した。
呼ぶとログにヒープの使用状況がダンプされる。

separateheap で初期サイズを自動とした時、上限を 512MB とするようにした。
1GB 以上も割り当てるのはさすが好ましくないという判断。
初期サイズなので、足りなくなったら拡張される。

ヒープのダンプを見ると、separateheap はかなり良好に働いているように見える。
これで Bitmap メモリの断片化によるメモリ確保の失敗は軽減できそう。
実使用環境でエージングしてみないと効果のほどは不明ではあるけど。



投稿者 Takenori : 2014年01月14日 01:45




comments powered by Disqus
Total : Today : Yesterday : なかのひと