我正在尝试计算一个不太小的文本文件(多个 MB)中的行数。我在这里找到的答案表明:
(Get-Content foo.txt | Measure-Object -Line).Lines
Run Code Online (Sandbox Code Playgroud)
这有效,但性能很差。我猜整个文件被加载到内存中,而不是逐行流式传输。
我用 Java 创建了一个测试程序来比较性能:
(Get-Content foo.txt | Measure-Object -Line).Lines
Run Code Online (Sandbox Code Playgroud)
纯 Java 解决方案的速度提高了约 80 倍。
是否有一种内置的方法可以以可比的性能完成这项任务?如果这很重要,我使用的是 PowerShell 4.0。
看看这是否比您当前的方法快:
$count = 0
Get-Content foo.txt -ReadCount 2000 |
foreach { $Count += $_.count }
$count
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |