LINUX.ORG.RU

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

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

Насчет распараллеливания… Что-то мне подсказывает что IO чтения файла по идее должно быть медленнее работы процессора. Процессор просто обязан проверять пробелы быстрее. Если код распараллелить, то прийдется читать из разных сегментов файла, что на жестких дисках может быть не очень. Потому нужно просто читать последовательно. Другое дело что обычные read() будут чередоваться с работой процессора. Чтобы этого избежать лучше использовать memory mapping c head ahead. Это не портабельно конечно, но что же

Царь выше избегает необходимости это делать, возлагая ответственность на bash. Я точно не знаю, но логично что перенаправление вывода файла должно делать readahead и чтение в одну сторону.

Если делать это в утилите, то обязательно пользоваться разной linux-only фигней.

Хаскелль не читал, но что-то мне подсказывать что multicore работает лучше одно потока, потому что код сильно неэффективный чтобы упираться в IO. Автор пишет

One may not expect parallelizing to multiple cores to do a whole lot since presumably this whole operation is IO bounded, but I’m going to do it anyways because I’m stubborn and bored.

Исправление vertexua, :

Насчет распараллеливания… Что-то мне подсказывает что IO чтения файла по идее должно быть медленнее работы процессора. Процессор просто обязан проверять пробелы быстрее. Если код распараллелить, то прийдется читать из разных сегментов файла, что на жестких дисках может быть не очень. Потому нужно просто читать последовательно. Другое дело что обычные read() будут чередоваться с работой процессора. Чтобы этого избежать лучше использовать memory mapping c head ahead. Это не портабельно конечно, но что же

Царь выше избегает необходимости это делать, возлагая ответственность на bash. Я точно не знаю, но логично что перенаправление вывода файла должно делать readahead и чтение в одну сторону.

Если делать это в утилите, то обязательно пользоваться разной linux-only фигней.

Хаскелль не читал, но что-то мне подсказывать что multicore работает лучше одно потока, потому что код сильно неэффективный чтобы упираться в IO

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

Насчет распараллеливания… Что-то мне подсказывает что IO чтения файла по идее должно быть медленнее работы процессора. Процессор просто обязан проверять пробелы быстрее. Если код распараллелить, то прийдется читать из разных сегментов файла, что на жестких дисках может быть не очень. Потому нужно просто читать последовательно. Другое дело что обычные read() будут чередоваться с работой процессора. Чтобы этого избежать лучше использовать memory mapping c head ahead. Это не портабельно конечно, но что же