Сортировка слиянием в Linux *медленнее* полной сортировки?

Сортировка слиянием в Linux *медленнее* полной сортировки?

Я использую сортировку слиянием Linux (sort -m) для сортировки большой группы предварительно отсортированных файлов. Я предполагал, что сортировка слиянием будет значительно быстрее полной сортировки на несортированных данных, но это не то, что я вижу. Например, если я выполняю полную сортировку на 1000 файлах, содержащих 10000 строк несортированных данных:

/bin/time -o ./full_sort.time -v sort --parallel 8 -k1,1g ./data/unsorted/f* > /dev/null

Я вижу следующее время:

User time (seconds): 104.70
System time (seconds): 0.71
Percent of CPU this job got: 440%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:23.90

Теперь, если я предварительно отсортирую данные и запущу точно такую ​​же сортировку, вызвав опцию -m:

/bin/time -o ./merge_sort.time -v sort --parallel 8 -k1,1g -m ./data/presorted/f* > /dev/null

Я вижу эти времена:

User time (seconds): 59.34
System time (seconds): 2.15
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:01.60

Время сортировки слиянием на самом деле составляетпомедленнеечем полная сортировка! Опять же, я ожидал, что сортировка слиянием будет значительно быстрее, поскольку каждый входной файл в наборе данных предварительно отсортирован, и осталось выполнить только шаг слияния. Должно быть, я что-то упускаю. Может кто-нибудь объяснить, что я делаю неправильно?

Спасибо, JCS

Связанный контент