Zum Beispiel bzip
gibt es pbzip , eine parallele Version von bzip
. Gibt es solche Tools für sort
die Parallelisierung , um die Leistung zu verbessern?
performance
sort
Miku
quelle
quelle
Das einzige, was mir beim Sortieren immer am meisten hilft, ist, ihm so viel Speicher wie möglich zu geben, um das Vertauschen zu verringern, z.
quelle
sort -S 50%
Wenn Ihre Datei groß genug ist, führt das Sortieren zu einem Plattenaustausch, entweder weil der zugewiesene virtuelle Speicher zu groß wird oder weil das
sort
Programm selbst Teile auf die Festplatte und zurück überträgt. Bei älterensort
Implementierungen ist es wahrscheinlicher, dass diese Art des Sortierens über den Festplattenpuffer erfolgt, da dies früher die einzige Möglichkeit war, große Dateien zu sortieren.sort
hat eine-m
Option, die Ihnen hier helfen kann. Es ist möglicherweise schneller, die Datei in Blöcke aufzuteilen - sagen wir mitsplit -l
- sie unabhängig voneinander zu sortieren und sie dann wieder zusammenzuführen.Andererseits kann es sein, dass dies genau das ist, was "Sortieren über Plattenpuffer" tut. Die einzige Möglichkeit, herauszufinden, ob dies hilfreich ist, besteht darin, es an Ihrer speziellen Testlast zu messen. Der kritische Parameter ist die Zeilenzahl, die Sie vergeben
split -l
.quelle
split
und durchführenmerge
und sehen, ob es hilft.merge(1)
Anwendbarkeit. Verwenden Siesort -m
.sort --merge
.Ich hatte einen sehr signifikanten Gewinn mit
sort -n
, der numerische Werte (float oder integer) in allen ausgewählten Spalten ohne wissenschaftliche Notation erfordert.Eine weitere Möglichkeit, die zu einer
/dev/shm
erheblichen Verbesserung Ihres Prozesses führen kann, ist die Verwendung des Ordners für die Zuordnung des Arbeitsspeichers für die Verarbeitung von Zwischendateien.quelle
Normalerweise erledigt die Linux-Sortierung einige raffinierte Aufgaben, um den Unicode-Gleichheitsregeln zu entsprechen. Wenn Sie das Gebietsschema in C ändern, wird nur auf Byte umgeschaltet.
Für eine 1,4-GB-Datei beträgt der Unterschied zwischen 20 und 400 Sekunden (!!!).
quelle
LC_ALL=C
genug?LC_COLLATE
es schon. AFAIKsort
verwendetstrcoll
für den Vergleich und die Manpage sagt, dass das Verhalten vonLC_COLLATE
Datei wird geteilt und sortiert, wodurch die Sortiergeschwindigkeit erhöht wird
quelle