我的一個主要應用是在運行時崩潰。內存分配 - 15 GB如何等於2GB?
我想知道這是否與系統的內存分配問題有關。因此,我創建了一個小的測試程序來分配1GB內存,同時運行15個這樣的進程,因此總共使用了15GB的RAM。
但是,當我運行這個程序時,任務管理器顯示它只佔用了2GB的RAM?這怎麼可能?
我寫了一個示例代碼如下
char *ptr[1024];
for (i = 0 ; i < 1024 ; ++i)
{
ptr[i] = new char[1024 * 1024];
std::cout << " Allocated 1024 MB" << i << " th time " << std::endl;
}
也許操作系統過度使用?即,儘管沒有足夠的內存,'new'會返回一個有效的指針。嘗試*實際*對所獲得的內存寫點東西,你的過程可能會被殺死。 – 2013-08-23 21:05:46
任務管理器不顯示「佔用的內存量」。它顯示[工作集](http://windows.microsoft.com/en-us/windows-vista/what-do-the-task-manager-memory-columns-mean),這是一個不同的事情。 –