Por ejemplo, para bzip
hay pbzip , una versión paralela de bzip
. ¿Existe alguna herramienta de paralelización para sort
mejorar el rendimiento?
performance
sort
miku
fuente
fuente
Lo único que siempre me ayuda más con la clasificación es darle tanta memoria como sea posible, para reducir el intercambio, por ejemplo:
fuente
sort -S 50%
Si su archivo es lo suficientemente grande, la ordenación provocará el intercambio de discos, ya sea porque la memoria virtual asignada está creciendo demasiado o porque el
sort
programa en sí está intercambiando fragmentos en el disco y viceversa.sort
Es más probable que las implementaciones anteriores tengan este tipo de comportamiento de "ordenar a través del búfer de disco", ya que era la única forma de ordenar archivos grandes en los viejos tiempos.sort
tiene una-m
opción que puede ayudarte aquí. Puede ser más rápido dividir el archivo en trozos, digamos consplit -l
, ordenarlos de forma independiente, luego fusionarlos nuevamente.Por otra parte, puede ser que esto es exactamente lo que hace "ordenar a través del búfer de disco". La única forma de averiguar si ayuda es compararlo con su carga de prueba particular. El parámetro crítico será el recuento de líneas que le dé
split -l
.fuente
split
ymerge
y veré si ayuda.merge(1)
tenga aplicabilidad aquí. Usosort -m
.sort --merge
.Tuve una ganancia muy significativa usando
sort -n
, que requiere valores numéricos (flotante o entero) en todas las columnas seleccionadas, sin notación científica.Otra posibilidad que puede aportar una gran mejora en su proceso es utilizar la carpeta asignada de memoria
/dev/shm
para tratar con archivos intermedios.fuente
Usualmente, la ordenación de Linux hace algunas cosas ingeniosas para cumplir con las reglas de igualdad de Unicode ... si cambia la configuración regional a C, solo cambia a byte ...
Para un archivo de 1.4GB, la diferencia en mi máquina es 20s vs. 400s (!!!)
fuente
LC_ALL=C
sería suficiente?LC_COLLATE
ya sea suficiente. AFAIKsort
utilizastrcoll
para comparar y la página de manual dice que el comportamiento depende deLC_COLLATE
el archivo se divide y ordena aumentará la velocidad de la clasificación
fuente