トップページ > 記事閲覧
デフラグについて
名前:あいうえお 日時: 2017/10/03 19:32

はじめて質問させていただきます。 Dxlibではグラフィックデータのリソースデータを読み込み、削除する際、 デフラグ(メモリ断片化を防ぐ)処理をどのように行っているのでしょうか? 行っていないのであればどのようにすればデフラグ処理を行えるのでしょうか? よろしくお願いいたします。
メンテ

Page: 1 |

Re: デフラグについて ( No.1 )
名前:あいうえお 日時:2017/10/03 19:46

申し訳ございません。 解決いたしました。 DxHeepのHeep_FreeMemoryで行っているみたいですね
メンテ
Re: デフラグについて ( No.2 )
名前:管理人 日時:2017/10/04 01:00

DXライブラリではガベージコレクション( メモリの断片化を解消する )は行っていませんので、 普通に使っているだけでメモリの断片化は発生します 加えて、現在DXライブラリが採用しているメモリ管理のアルゴリズムは 『多少の断片化が発生しても構わないので、メモリ確保処理の負荷を軽減する』ものなので、余計に断片化が発生します ただ、現在はギガバイト単位でメモリが扱えるので、DXライブラリで扱う範囲のデータサイズでは メモリの断片化が原因でプログラムの動作に支障が発生することは滅多に無いと思います ( 実際に一般的なPCの搭載メモリが 128MB くらいの頃から今まで、メモリの断片化が原因で致命的な問題が  発生したというご報告は受けたことがありません… ) > 行っていないのであればどのようにすればデフラグ処理を行えるのでしょうか? 直接的なデフラグ処理( ガベージコレクション処理 )は機能が無いので行えませんが、 後入れ先出しをするとメモリの断片化を抑えることができます 例えば ステージA, ステージB, ステージC に必要なファイルセットがあって、必要になる順番も A -> B -> C だった場合、  ファイルセットA 読み込み  ↓  ファイルセットB 読み込み  ↓  ファイルセットA 不要になったので解放  ↓  ファイルセットC 読み込み  ↓  ファイルセットB 不要になったので解放  ↓  ファイルセットC 不要になったので解放 のように『読み込まれているファイルセットが複数あるタイミングが存在する』処理にするより  ファイルセットA 読み込み  ↓  ファイルセットA 不要になったので解放  ↓  ファイルセットB 読み込み  ↓  ファイルセットB 不要になったので解放  ↓  ファイルセットC 読み込み  ↓  ファイルセットC 不要になったので解放 のように『読み込まれているファイルセットが複数あるタイミングが存在しない』処理の方が断片化が少なくなります
メンテ
Re: デフラグについて ( No.3 )
名前:あいうえお 日時:2017/10/07 20:23

なるほど、ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存