10

我正在尝试做一些需要资源承受压力的测试。我能够找出如何使用 PowerShell 最大化 CPU 使用率。

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

有没有办法可以使用 PowerShell 来最大化内存使用率?

4

1 回答 1

12

试试这个:

$mem_stress = "a" * 200MB

编辑:如果不能在单个块中分配所有内存,请尝试在数组中分配多个块:

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

GC 似乎不会干扰这一点(在分配了 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
于 2012-09-27T22:48:16.530 回答