Улучшение производительности Powershell для генерации случайного файла

Я бы хотел, чтобы пользователь Powershell создал произвольный текстовый файл для использования при базовом тестировании системы (загрузка, загрузка, контрольная сумма и т. Д.).Я использовал следующие статьи и придумал свой собственный фрагмент кода создать случайный текстовый файл, но производительность ужасна.

Генерация случайных файлов в Windows (Stackoverflow.com)PowerShell - Создание фиктивных файлов (Verboon.info)Создавайте большие файлы с помощью Powershell (chris-nullpayload.rhcloud.com на основе приведенного выше кода verboon)

Вотмой пример кода, который занимает около 227 секунд для создания случайного текстового файла 1 МБ на современном ноутбуке с Windows 7 Dell. Время выполнения определялось с помощью командлета M, easure-Command. Я повторил тест несколько раз при различной загрузке системы с одинаковыми результатами длительного времени выполнения.

# select characters from 0-9, A-Z, and a-z
$chars = [char[]] ([char]'0'..[char]'9' + [char]'A'..[char]'Z' + [char]'a'..[char]'z')
# write file using 128 byte lines each with 126 random characters
1..(1mb/128) | %{-join (1..126 | %{get-random -InputObject $chars }) } `
  | out-file test.txt -Encoding ASCII

Я ищу ответы, которые обсуждаютпочему этот код имеет низкую производительность и предложения дляпростые изменения, которые я могу сделать, чтобы улучшить время выполнения для создания аналогичного случайного текстового файла (текстовые строки ASCII из 126 случайных буквенно-цифровых символов - 128 байт с EOL «\ r \ n», выходной файл должен иметь четное число мегабайт, например, как образец выше 1 МБ). Я хотел бы, чтобы вывод файла записывался по частям (одна или несколько строк за раз), чтобы нам никогда не понадобилась строка размером с выходной файл, хранящийся в памяти.

Ответы на вопрос(0)

Ваш ответ на вопрос