Слушайте, почему встроенные в шелл объекты данных имеют такую жуткую производительность?
Вот создал я динамиццкий массив:
$array = @()
И после этого я добавляю в него записи:
$array += $record
Как только количество записей в нём становится более примерно двух тысяч, оно начинает просто ДИЧАЙШЕ тормозить. measure-command говорит, что на каждую операцию уходит аж до 10 миллисекунд! Что, кажется быстро? Создать массив из 50 тысяч записей (по современным меркам — это вообще ни о чём) потребует почти десяти минут времени.
Хорошо хоть, что шелл умеет в использование дотнетовских объектов:
$array = [System.Collections.ArrayList]::new()
После чего $array.Add($record) на 50 килозаписей улетает по трубам процессора просто со свистом.
Но чрезвычайно низкая производительность встроенных структур данных, прямо скажем, удивила. Я, конечно, не ожидал производительности Джавы, но как-то оно тово, удручает.