微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在PowerShell 5中最大变量计数为4096

如何解决为什么在PowerShell 5中最大变量计数为4096

只是为了好玩我运行了该代码

for ($i = 0; $i -le 9999; ++$i) { New-Variable $i $i -ErrorAction Stop }

PowerShell 5.1 返回:

New-Variable : Cannot create variable 4073 because variable capacity 4096 is exceeded for this scope.

但是在 PowerShell 7.0.3 中,我更改了for来创建 1毫安变量。
而且我已经厌倦了等待..当pwsh吞噬了7 Gb RAM时取消了它...
$i当时是 18,401,068

这意味着 PS 7.0.3 对变量计数没有限制,或者它很高。

那么为什么 PS 5.1 中的 4096 变量数没有限制?

解决方法

那么在PS 5.1中为什么有4096个变量计数限制?

因为某个时候某人认为这是个好主意。就是这样。

也许有人添加了它,因为PowerShell中的变量操作非常昂贵,而且超级内存效率不高。也许其中一个开发人员在测试期间像您一样运行了一个循环,它耗尽了他机器上的所有内存,这似乎是一个轻松的权宜之计。我们可能永远不会知道。

我们可以从公开获得的信息中得知,limitation was removed long before GA发行版的PowerShell Core 6.0 –正是因为没有很好的理由来保留它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。