2014-11-05 78 views
0

我想用C++編寫一個能夠強調Windows 7系統的程序。在我的意圖中,我希望這個程序使用所有安裝的ram將CPU使用率提高到100%。C++:壓力Windows系統

我嘗試了一個大的FOR循環,每一步都運行一個簡單的乘法:CPU使用率增加,但使用的RAM仍然很低。

達到目標的最佳方法是什麼?

+1

確實對於內存壓力的能力,使用'VirtualAlloc' API提交儘可能多儘可能大的緩衝區,確保觸摸所有頁面,因此一切都是RAM。 – 2014-11-05 16:54:35

+0

你知道你的代碼爲什麼不增加內存使用嗎? – 2014-11-05 17:01:10

+0

一個核心永遠不會使CPU達到100%:你必須使用所有可用的線程加上一個密集的任務,這應該避免無用的I/O或它將要等待的東西。 您可能會考慮類似[this](https://stackoverflow.com/questions/8389648/how-do-i-achieve-the-theoretical-maximum-of-4-flops-per-cycle)。 – edmz 2014-11-05 17:12:21

回答

0

以與操作系統無關的方式,您可以分配和填充使用malloc(3)獲得的堆內存(所以對該區域進行一些計算),或者使用C++與operator new。請務必對malloc的故障進行測試。逐步增加區域的大小。

+0

當它_does_失敗時,降低尺寸並重試。當然,這只是在理論意義上「使用」RAM。如果你不寫信給那個RAM,它根本沒有被強調。 – MSalters 2014-11-05 20:00:43

+0

「fill」動詞的含義是*寫* malloc-ed的內存 – 2014-11-05 20:01:54

+1

對不起,錯誤的是,爲了分配物理RAM的意圖(你鏈接到Linux手冊頁,而Linux在你調用malloc時不會分配RAM )。我的意思是強調記憶,你應該寫很多**。不要只填寫一次,因爲這只是交換。 – MSalters 2014-11-05 20:06:05