LINUX.ORG.RU

История изменений

Исправление www_linux_org_ru, (текущая версия) :

$ perl -We '$a=1; for($i=1;$i<10111222;++$i) { $a+=($a<<2); $a&=0x7FFFFFFF; print "$a\n";}' > 100m
$ time sort 100m > /dev/null 

real    0m58.005s
user    0m57.792s
sys     0m0.216s

в то время как простейший merge sort должен делать примерно 27 проходов по памяти, что даст меньше 3 ГБ трафика (по памяти), который (я мерил) можно сделать за полсекунды (правда я мерил просто на чтение, и не мерил на чтение+запись, ну пусть тогда будет не полсекунды, а секунда)

sort, вообще-то, у меня создает временные файлы по 3мб, но схрена ли к ним так медленно идет обращение?

/tmp на быстрой почти пустой партиции (скорость диска около 50мб/с, но это и не должно влиять, т.к. памяти свободной дофига)

             total       used       free     shared    buffers     cached
Mem:       8198228    2443748    5754480          0      98212    1406100
-/+ buffers/cache:     939436    7258792
Swap:      7811064     122876    7688188

(подозреваю, что виноват алгоритм сортировки )

Исходная версия www_linux_org_ru, :

$ perl -We '$a=1; for($i=1;$i<10111222;++$i) { $a+=($a<<2); $a&=0x7FFFFFFF; print "$a\n";}' > 100m
$ time sort 100m > /dev/null 

real    0m58.005s
user    0m57.792s
sys     0m0.216s

в то время как простейший merge sort должен делать примерно 27 проходов по памяти, что даст меньше 3 ГБ трафика (по памяти), который (я мерил) можно сделать за полсекунды (правда я мерил просто на чтение, и не мерил на чтение+запись, ну пусть тогда будет не полсекунды, а секунда)

sort, вообще-то, у меня создает временные файлы по 3мб, но схрена ли к ним так медленно идет обращение?