小编Dav*_*atz的帖子

PowerShell:将 16MB CSV 导入 PowerShell 变量会创建超过 600MB 的 PowerShell 内存使用量

我试图理解为什么当我导入一个大约 16MB 的文件作为变量时 PowerShell 的内存膨胀这么多。我可以理解围绕该变量存在额外的内存结构,但我只是想了解它为什么那么高。这是我在下面所做的 - 只是任何人都可以运行的另一个脚本的精简片段。

笔记/问题

  1. 不是抱怨,而是试图理解为什么使用如此多,以及是否有更好的方法来做到这一点或更有效地管理内存以尊重我正在运行的系统。
  2. 在 PowerShell 5.1 和刚刚发布的 PowerShell 7、RC3 中也会出现相同的行为。我不认为这是一个错误,只是让我了解更多信息的另一个机会。
  3. 我的总体目标是运行一个 foreach 循环来检查另一个小得多的数组是否与此数组匹配或缺少匹配。

我的测试代码

Invoke-WebRequest -uri "http://s3.amazonaws.com/alexa-static/top-1m.csv.zip" -OutFile C:\top-1m.csv.zip

Expand-Archive -Path C:\top-1m.csv.zip -DestinationPath C:\top-1m.csv

$alexaTopMillion = Import-Csv -Path C:\top-1m.csv
Run Code Online (Sandbox Code Playgroud)

对任何回答这个问题的人:感谢您的时间并帮助我每天学习更多!

memory powershell memory-profiling pscustomobject import-csv

5
推荐指数
1
解决办法
854
查看次数