Na przykład bzip
istnieje pbzip , równoległa wersja bzip
. Czy istnieją takie narzędzia do paralelizacji w sort
celu poprawy wydajności?
performance
sort
miku
źródło
źródło
Jedyną rzeczą, która zawsze mi najbardziej pomaga w sortowaniu, jest zapewnienie jak największej ilości pamięci, aby ograniczyć zamianę, np .:
źródło
sort -S 50%
Jeśli plik jest wystarczająco duży, sortowanie spowoduje zamianę dysku, albo z powodu zbyt dużej ilości przydzielonej pamięci wirtualnej, albo dlatego, że
sort
sam program zamienia fragmenty na dysk iz powrotem. Starszesort
implementacje częściej zachowują się jak w przypadku „sortowania według bufora dysku”, ponieważ w przeszłości był to jedyny sposób sortowania dużych plików.sort
ma-m
opcję, która może ci w tym pomóc. Szybsze może być podzielenie pliku na części - powiedzmy za pomocąsplit -l
- sortowanie ich niezależnie, a następnie scalenie ich z powrotem.Z drugiej strony może się zdarzyć, że właśnie to robi „sortuj według bufora dysku”. Jedynym sposobem, aby dowiedzieć się, czy to pomaga, jest przetestowanie go pod kątem konkretnego obciążenia testowego. Najważniejszym parametrem będzie liczba linii, którą podasz
split -l
.źródło
split
imerge
i zobacz czy to pomaga.merge(1)
miało to zastosowanie tutaj. Zastosowaniesort -m
.sort --merge
.Miałem bardzo znaczący zysk przy użyciu
sort -n
, który wymaga wartości liczbowych (liczba zmiennoprzecinkowa lub liczba całkowita) we wszystkich wybranych kolumnach, bez notacji naukowej.Inną możliwością, która może przynieść znaczną poprawę procesu, jest użycie folderu odwzorowanego w pamięci
/dev/shm
do obsługi plików pośrednich.źródło
Zwykle sortowanie w Linuksie robi kilka fajnych rzeczy, aby zachować zgodność z regułami równości Unicode ... jeśli zmienisz ustawienia regionalne na C, przełącza się tylko na bajty ...
W przypadku pliku 1,4 GB różnica na moim komputerze to 20s vs. 400s (!!!)
źródło
LC_ALL=C
wystarczy?LC_COLLATE
już wystarczy. AFAIKsort
używastrcoll
do porównania, a strona mówi, że zachowanie zależy odLC_COLLATE
plik zostanie podzielony i posortowany, zwiększy to szybkość sortowania
źródło