如何提升该PowerShell代码处理大文本文件的运行性能
PowerShell大文本处理脚本性能优化咨询
我编写了一段PowerShell脚本,用于读取大小约4000KB、总计近88500行的文本文件,这是我第一次编写需要处理如此大数据量的代码。当前脚本运行耗时超过2分钟,CPU占用约20%,对应任务管理器性能截图如下:
我想确认是否可以通过调整代码写法提升运行性能。
现有脚本内容
核心处理脚本如下:
# extractUniqueBaseNames.ps1 --- 提取文本每行首个全大写单词,去重后存储 $listing = 'C:\roll-conversion dump\LINZ Place Street Index\StreetIndexOutput.txt' [array]$tempStorage = $null [array]$Storage = $null # 匹配列表中首段长度至少2位的全大写字符串 Select-String -Pattern '(\b[A-Z]{2,}\b[$\s])' -Path $listing -CaseSensitive | ForEach-Object {$newStringValue = $_.Matches.Value -replace '$\s', '\n' $tempStorage += $newStringValue } $Storage += $tempStorage | Select-Object -Unique
我额外添加了如下输出代码(统计前述性能数据时运行的脚本版本未包含该行),用于将结果写入新文本文件:
$Storage | Out-File -Append atest.txt
优化诉求
目前我处于开发早期阶段,希望获取所有适用于此类PowerShell大文本处理场景的性能优化建议。
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

