Подтвердить что ты не робот

Могу ли я получить более быстрый выходной канал, чем/dev/null?

Я выполняю огромную задачу (автоматизированный перевод с использованием perl + database и т.д.) для работы в течение 2 недель без остановок. Задумываясь о том, как ускорить это, я увидел, что переводчик выводит все (все переведенные предложения, вся информация в пути) в STDOUT все время. Это делает работу заметно медленнее, когда я получаю вывод на консоли.

Я, очевидно, передал вывод на /dev/null, но потом я подумал: "может быть что-то еще быстрее?" Это так много результатов, что это действительно повлияет.

И этот вопрос я спрашиваю Тебя, потому что, насколько я знаю, нет ничего быстрее... (Но я далек от того, чтобы гуру использовал linux на ежедневной основе только последние 3 года)

4b9b3361

Ответ 1

Выход в /dev/null реализуется в ядре, что довольно быстро. Выходной канал теперь не является вашей проблемой, это время, необходимое для создания строк, отправляемых в /dev/null. Я бы рекомендовал вам пройти через программу и прокомментировать (или защитить с помощью if $be_verbose) все строки, которые являются бесполезными заявлениями печати. Я уверен, что это даст вам заметное ускорение.

Ответ 2

Я могу (через dd) сбросить 20 гигабайт данных в секунду вниз /dev/null. Это не ваше узкое место: -p

Практически единственный способ сделать это быстрее - не генерировать данные в первую очередь - полностью удалить отчеты о регистрации. Стоимость создания всех журнальных сообщений, вероятно, превышает стоимость отброса их совсем немного.