2012-03-18 19 views
0

私は、メモリの割り当てに失敗したためにクラッシュする大きなイメージを読み込んだりアンロードしたりするメモリ集中型のアプリケーションがあります。メモリの断片化を解決するためのヒープ分割

これを解決するヒープ分離方法を試したいと思います。画像用に1つの領域を設定し、小さなオブジェクトである傾向がある残りすべての領域を設定します。

HeapAlloc \ HeapCreateなどのWindows API関数が見つかりましたが、これは方法がわかりません。これに取り組む最善の方法は何ですか?

答えて

1

私は成功のためにHeapAlloc \ HeapCreateを使用しました。また、大きなオブジェクト(> 20Mbと思います)でも使用しました。しかし、それはメモリ問題をデバッグするためにオブジェクトを別々のヒープに保つためでした。最近のバージョンのウィンドウでは、Low fragmentation heapがデフォルトになります。だから私はあなたが断片化することに驚いています。おそらくあなたはこれに苦しんでいるでしょう:LFH disabled? 1回の割り当てで最大のサイズは何ですか?

+0

ヒープの初期サイズと最大サイズはどのように決定しましたか? – Leo

0

メモリが豊富なアプリケーション(大きなメモリチャンクを割り当てる)をお持ちの場合は、まずVirtualAllocを見てください。

関連する問題