2012-09-27 36 views
4

我正在嘗試做一些測試,需要資源承受壓力。我能夠找出如何使用PowerShell最大化CPU使用率。如何最大限度地利用PowerShell的內存使用量

start-job -ScriptBlock{ 
$result = 1; 
foreach ($number in 1..2147483647) 
    { 
     $result = $result * $number 
    } 
} 

有沒有一種方法可以使用PowerShell來最大限度地利用內存?

回答

6

試試這個:

$mem_stress = "a" * 200MB 

編輯:如果湊不能用單個存儲塊分配所有的內存,嘗試在一個數組分配多個塊:

$mem_stress = @() 
for ($i = 0; $i -lt ###; $i++) { $mem_stress += ("a" * 200MB) } 

的GC沒有按」 t似乎干擾了這一點(分配1 GB RAM的VM中的快速測試結果):

PS C:\> $a = @() 
PS C:\> $a += ("a" * 200MB) 
PS C:\> $a += ("a" * 200MB) 
PS C:\> $a += ("a" * 200MB) 
PS C:\> $a += ("a" * 200MB) 
The '*' operator failed: Exception of type 'System.OutOfMemoryException' was thrown.. 
At line:1 char:13 
+ $a += ("a" * <<<< 200MB) 
    + CategoryInfo   : InvalidOperation: (:) [], RuntimeException 
    + FullyQualifiedErrorId : OperatorFailed 
+1

這是一個巧妙的技巧,但是當1024MB或更高時就會失敗,這意味着這僅僅不足以強調大多數機器。使用這個想法,我把它放在'for()'循環中以不斷地咀嚼內存,但我不確定GC會否抵消這個。 – SpellingD

+1

這個:for($ i = 0; $ i <###; $ i ++){$ mem_stress + =(「a」* 200MB)} 應該是這樣的:for($ i = 0; $ i -lt# ##; $ i ++){$ mem_stress + =(「a」* 200MB)} – user1161625

+0

@ user1161625確實如此。感謝您的高舉。固定。 –

相關問題