Как исправить ошибку нехватки памяти при сравнении 5 миллионов записей в двух файлах с использованием Perl в среде Windows - PullRequest
0 голосов
/ 22 декабря 2018

Я сравниваю два файла по 5 миллионов записей в каждом (каждая строка содержит так много столбцов, но мне нужно сравнить только 2 столбца).Есть ли лучший способ сравнить два файла и найти различия без ошибки нехватки памяти?

Я попытался разобрать каждый файл в разные хеши, и сравнение обоих хешей приводит к ошибке нехватки памяти.

1 Ответ

0 голосов
/ 25 декабря 2018

Первый вопрос: нужно ли вам использовать Perl для начала?

Задумывались ли вы об использовании стандартных утилит Linux?

В зависимости от того, как создаются ваши столбцы данных ис разделителями, есть очень хороший шанс, что Linux cut поможет вам извлечь из каждого файла только нужный столбец во временный файл.

Затем используйте Linux sort для сортировки каждого временного файла.

Затем используйте Linux 'diff' или 'comm' для сравнения двух временных файлов.

Ни у одной из предложенных выше утилит не должно быть проблем с нехваткой памяти даже для двух файлов5 миллионов записей, при условии, что у вас есть достаточный объем памяти и дискового пространства (например, для сортировки для создания собственных временных файлов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...