Мне нужно разобрать большой файл с разделителями для подсчета количества записей, 5-я колонка которых соответствует и не соответствует моим критериям.
PS C:\temp> gc .\items.txt -readcount 1000 | `
? { $_ -notlike "HEAD" } | `
% { foreach ($s in $_) { $s.split("|")[4] } } | `
group -property {$_ -ge 256} -noelement | `
ft –autosize
Эта команда делает то, что я хочу, возвращая вывод, подобный этому:
Count Name ----- ---- 1129339 True 2013703 False
Однако, для тестового файла размером 500 МБ, эта команда занимает около 5,5 минут, как измеряет Measure-Command. Обычный файл имеет размер более 2 ГБ, где ожидание 20+ минут является нежелательно долгим.
Видите ли вы способ улучшить производительность этой команды?
Например, есть ли способ определить оптимальное значение для параметра ReadCount команды Get-Content? Без него на один и тот же файл уходит 8,8 минуты.