差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ぷらしーぼ [2022/05/09 16:14] fumble |
ぷらしーぼ [2023/10/15 12:24] (現在) fumble |
||
---|---|---|---|
行 2: | 行 2: | ||
====概要==== | ====概要==== | ||
- | ダンス中に、不要メモリの解放処理((GarbageCollector、GC))を停止させることで、メモリ解放処理由来のかくつきを押さえるプラグイン。 | + | ダンス中に不要メモリの解放処理((GarbageCollector、GC))を停止させることで、メモリ解放処理由来のかくつきを押さえるプラグイン。 |
====ダウンロード==== | ====ダウンロード==== | ||
行 47: | 行 47: | ||
GC対象メモリはGCが管理しているメモリ(らしい)。\\ | GC対象メモリはGCが管理しているメモリ(らしい)。\\ | ||
- | GC対象メモリが増えると必然的にワーキングセットに置く必要性があるので通常はワーキングセットも増えて行きます。\\ | + | GC対象メモリが増えると必然的にワーキングセットに置く必要性があるので最初はワーキングセットも増えて行きます。\\ |
その状態でGCが発生するとGC対象メモリで不要だと判断されたものが解放されるので、GC対象メモリは減少します。\\ | その状態でGCが発生するとGC対象メモリで不要だと判断されたものが解放されるので、GC対象メモリは減少します。\\ | ||
が、ワーキングセットはこの時点では減りません。ワーキングセットはOS管理でGCは直接どうのこうのしません。\\ | が、ワーキングセットはこの時点では減りません。ワーキングセットはOS管理でGCは直接どうのこうのしません。\\ | ||
再度、GC対象メモリが増えた場合、GCが割り当てるメモリはワーキングセット内に(追い出されていなければ)あるはずなので、(既にワーキングセット内にある分は)ワーキングセットは増えずにGC対象メモリが増えていきます。\\ | 再度、GC対象メモリが増えた場合、GCが割り当てるメモリはワーキングセット内に(追い出されていなければ)あるはずなので、(既にワーキングセット内にある分は)ワーキングセットは増えずにGC対象メモリが増えていきます。\\ | ||
+ | |||
+ | PCでメモリ不足になった時に重くなるのは、ワーキングセットから追い出したメモリへのアクセスが発生し((ページフォルト))、戻す((ページイン))ために使われてなさそうなところを追い出し((ページアウト))して、戻す((ページイン))という動作をOSがするためです。\\ | ||
+ | ※追いだしたものがまたすぐ戻さなくてはいけなくなるような、どう考えても悪循環な動作ですよね?\\ | ||
+ | |||
COM3D2.MemEmptyプラグイン(とあるプラグインの制作者 作)が明示的にこのワーキングセットを可能な限りページファイルに吐き出してワーキングセットを縮小するプラグインです。\\ | COM3D2.MemEmptyプラグイン(とあるプラグインの制作者 作)が明示的にこのワーキングセットを可能な限りページファイルに吐き出してワーキングセットを縮小するプラグインです。\\ | ||
吐き出した場合、ワーキングセットは一時的に縮小して、使用されるときにまたワーキングセットに戻されます。(この処理はOSレベルで重い処理になります。)\\ | 吐き出した場合、ワーキングセットは一時的に縮小して、使用されるときにまたワーキングセットに戻されます。(この処理はOSレベルで重い処理になります。)\\ | ||
- | ぷらし~ぼではOSレベルのメモリ管理には手を出していません。(手を出す気もないです。)\\ | + | ぷらし~ぼではOSレベルのメモリ管理には手を出していません。(現状、手を出す気はありません。)\\ |
+ | ※ここに書いていることはすごく簡単に書いています、実際OSはもっと複雑な処理を行っていて安易に手を出す部分ではありません。\\ | ||
====さらに技術的な話==== | ====さらに技術的な話==== |