2011-01-17 29 views
2

RAMに膨大な量のデータを割り当てるプログラムを作成しています。今、RAMが空き領域を使い果たすと、プログラムは仮想メモリに置かれ、ページングスワップが発生します。これは非常に遅いです。 RAMの残り容量を確認することはできますか?システムが現在仮想メモリを使用しているかどうかを確認することは可能ですか?WindowsのRAMに残っている容量を確認しますか?

これはWindowsのC++にあります。

+1

Windowsは、積極的に使用しているプログラムがない場合、使用可能なすべてのRAMを積極的にディスクキャッシュに埋め込みます。 –

+2

Windowsのすべてのメモリがvitualです。おそらくあなたのプログラムがディスクにスワップアウトされているかどうかを知りたいでしょう。 – ThomasMcLeod

+1

@ThomasMcLeod:あなたは知っていますか?あなたはおそらく正しいでしょう... – Karl

答えて

4

GlobalMemoryStatusEx機能を使用すると、空きRAM容量を取得できます。 RAMが不足しているときに通知を受けるには、QueryMemoryResourceNotificationメソッドを使用できます。

+0

windows.hが利用できない場合の代替手段はありますか? – Karl

+1

windows.hが利用できないのはなぜですか? – ThomasMcLeod

+0

たとえば、Visual C++ expressを使用している場合。それはwindows.hに付属していない、私は想起した。 – Karl

1

フリー・ラムの量があれば、ウィンドウはあなたのプログラムをページしません。 GetCurrentProcessのSetProcessWorkingSetSize APIを試すことはできますが、保証はありません。代わりにVirtualLockを使用して保証する必要がありますが、パフォーマンスが低下する可能性があります。

関連する問題