Por exemplo, bzip
há pbzip , uma versão paralela de bzip
. Existe alguma ferramenta de paralelização para sort
melhorar o desempenho?
performance
sort
miku
fonte
fonte
A única coisa que sempre me ajuda mais na classificação é fornecer o máximo de memória possível, para reduzir a troca, por exemplo:
fonte
sort -S 50%
Se o seu arquivo for grande o suficiente, a classificação causará a troca de disco, porque a memória virtual alocada está ficando muito grande ou porque o
sort
próprio programa está trocando pedaços para o disco e vice-versa. Mais velhosort
É mais provável que implementações mais tenham esse tipo de comportamento "classificar via buffer de disco", pois era a única maneira de classificar arquivos grandes nos velhos tempos.sort
tem um-m
opção que pode ajudá-lo aqui. Pode ser mais rápido dividir o arquivo em pedaços - digamossplit -l
- ordená-los independentemente e depois juntá-los novamente.Por outro lado, pode ser que seja exatamente isso que "classificar via buffer de disco" faz. A única maneira de descobrir se isso ajuda é compará-lo com sua carga de teste específica. O parâmetro crítico será a contagem de linhas que você fornecer
split -l
.fonte
split
emerge
ver se isso ajuda.merge(1)
tenha aplicabilidade aqui. Usesort -m
.sort --merge
.Eu tive um ganho muito significativo usando
sort -n
, o que requer valores numéricos (float ou número inteiro) em todas as colunas selecionadas, sem notação científica.Outra possibilidade que pode trazer uma grande melhoria em seu processo é usar a pasta mapeada na memória
/dev/shm
para lidar com arquivos intermediários.fonte
Geralmente, a classificação do Linux faz algumas coisas bacanas para cumprir as regras de igualdade Unicode ... se você alterar o código do idioma para C, ele muda para somente byte ...
Para um arquivo de 1,4 GB, a diferença na minha máquina é 20s vs. 400s (!!!)
fonte
LC_ALL=C
seria suficiente?LC_COLLATE
já seja suficiente. AFAIKsort
usosstrcoll
para comparação e a página do manual diz que o comportamento dependeLC_COLLATE
o arquivo é dividido e classificado, aumentará a velocidade da classificação
fonte