malloc
-ed または-edのときではなく、タッチされるまでメモリが Windows タスク マネージャーによって割り当てられたものとして登録されないというこの奇妙な効果に気付きましたnew
。この効果は、最適化されたビルドdebug
と最適化されたビルドの両方で発生しrelease
ます。
以下は構造の例ですが、私のコードでは割り当てと使用率が異なるスレッドで発生するため、確認方法はわかりませんが、オプティマイザーではないと思います。
for (int i = 0 ;i < 1000;i++)
{
buffer[i]=malloc(buffersize);
}
_sleep(1000*60)
for (int i=0;i<1000;i++)
{
memset(buffer[i],0,buffersize);//Only shows up the in the resource manager here
}
私の質問は、メモリを使用したことを Windows がどのように認識しているのかということです。最初の使用のためにメモリを監視していますか、それともコンパイル時の最適化ですか。
私の好奇心は、私が書いているリアルタイムの取得によって動機付けられています.2回メモリに触れる必要があります->割り当て時に1回、実際にデータを入力するときに1回。したがって、ボタンを押す ("aquire!") と、時間の経過とは対照的に、一度に 64 ギガバイトの RAM を書き込む必要があり、かなりの遅延が追加されます。私malloc
が行くと、これにより遅延が大きくなりすぎます。
- 編集 -
Windowsページファイルも無効にしました...