Операция выполнена!
Закрыть
Хабы: .NET, C#, Алгоритмы

Три года назад я опубликовал статью Сортировка слиянием — не так просто, как кажется, в которой решал задачу с собеседования, как построчно отсортировать огромный текстовый файл, который заведомо не влезает в оперативную память.

Формат строки: число, точка, пробел, далее любые символы до конца строки.
Порядок сортировки: сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.
Кодировка: UTF-8, сортировка с учетом локали.
Размер файла: 100гб — гарантированно больше объема ОП.
Должно отработать менее чем за час на HDD.

Прошлая версия, которую я написал еще на .NET 7, справлялась за 32 минуты на моем компьютере. Большую часть времени занимало чтение-запись файлов, поэтому так применялись сжатие, параллельная обработка сортировки и ввода-вывода, а таже низкоуровневые манипуляции с массивом байт для уменьшения аллокаций.

Что еще можно оптимизировать
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro