Например, bzip
есть pbzip , параллельная версия bzip
. Есть ли такие инструменты распараллеливания для sort
повышения производительности?
performance
sort
Мик
источник
источник
Одна вещь, которая всегда помогает мне больше всего в сортировке, - это выделение для нее как можно большего объема памяти, чтобы уменьшить обмен, например:
источник
sort -S 50%
Если ваш файл достаточно велик, сортировка приведет к подкачке диска, либо из-за того, что выделенная виртуальная память становится слишком большой, либо из-за того, что
sort
сама программа переставляет фрагменты на диск и обратно. В старыхsort
реализациях такой тип поведения «сортировка по дисковому буферу» более вероятен, поскольку в старые времена это был единственный способ сортировки больших файлов.sort
есть-m
вариант, который может помочь вам здесь. Возможно, быстрее будет разбить файл на куски, скажем, с помощьюsplit -l
сортировки, а затем объединить их вместе.С другой стороны, может случиться так, что это именно то, что делает «сортировка через дисковый буфер». Единственный способ выяснить, помогает ли это, - сравнить его с вашей конкретной тестовой нагрузкой. Критическим параметром будет количество строк, которое вы дадите
split -l
.источник
split
иmerge
и посмотреть , если это помогает.merge(1)
здесь применимости. Использованиеsort -m
.sort --merge
.У меня был очень значительный выигрыш при использовании
sort -n
, который требует числовые значения (с плавающей точкой или целое число) во всех выбранных столбцах, без научной записи.Еще одна возможность, которая может значительно улучшить ваш процесс, - это использовать папку
/dev/shm
с отображенной памятью для работы с промежуточными файлами.источник
Обычно сортировка Linux делает некоторые полезные вещи, чтобы соответствовать правилам равенства Unicode ... если вы измените локаль на C, она переключится только на байт ...
Для файла объемом 1,4 ГБ разница на моей машине составляет 20 с против 400 с (!!!)
источник
LC_ALL=C
ли этого достаточно?LC_COLLATE
, уже достаточно. AFAIKsort
используетstrcoll
для сравнения, а на странице руководства сказано, что поведение зависит отLC_COLLATE
Файл разбит и сортирует, это увеличит скорость сортировки
источник