предотвращать доступ файловой системы при передаче информации в программы и из них

Я написал основной сценарий, который вызывает системную программу десятки тысяч раз. Основной скрипт создает и предоставляет этой программе входной файл для каждого вызова. По завершении программа создает выходной файл, который считывается главным скриптом. Программа запускается с помощью: program inputFile outputFile

Основной скрипт работает медленно, и я считаю, что это связано с большими накладными расходами I / 0, возникшими при запуске program .

Можно ли запустить эту программу без записи или чтения на диск?

Обратите внимание, что как inputFile и outputFile могут содержать несколько строк. Внутренние части программы могут быть изменены, но я бы предпочел не делать этого. К сожалению, я не мог найти соответствующие рекомендации в другом месте.

One Solution collect form web for “предотвращать доступ файловой системы при передаче информации в программы и из них”

Это может зависеть от того, что делает ваш скрипт с выходом из program . Если вы делаете что-то сложное, которое требует обработки файла несколько раз, вам может быть не повезло. (Назовем это «нулевой точкой».)

Во-первых, проверьте, можно ли напрямую и недвусмысленно сказать, что программа может записать свой вывод на стандартный вывод вместо именованного файла. Некоторые программы интерпретируют аргумент просто тире ( - ) для обозначения стандартного ввода или стандартного вывода, если это необходимо. Поэтому постарайтесь

 program inputFile - |  ваша обработка

Во-вторых, попробуйте то же самое с /dev/stdout качестве имени выходного файла:

 программа inputFile / dev / stdout |  ваша обработка

В-третьих, попробуйте именованный канал:

 myFifo = $ (Mktemp)
 program inputFile "$ myFifo" &
 ваша обработка <"$ myFifo"
 rm "$ myFifo"
  • Диск занят близким к 100%, а iowait - 0,0% на SunOS, как это возможно?
  • Оптимизация чтения / вывода с чтением вперед, избегая хранения данных в кеше страницы
  • Как вы блокируете определенный процесс (например, vim) от доступа к установленному диску?
  • vmstat IO stats: почему высокий бо во время загрузки?
  • I / O приносит машину на колени
  • Как я могу дифференцировать диск ввода-вывода, явно выполняемый пользователем и предварительной выборкой ОС?
  • -bash: / usr / sbin / useradd: Ошибка ввода / вывода. Что это значит?
  • Какова философия задерживания записи данных на диск?
  • Как определить, записаны ли данные на диск или кэшированы?
  • Низкий уровень ввода / вывода на Linux
  • Как сохранить / dev / stdout целевое местоположение в сценарии bash?
  • В чем разница между> и >> (особенно это касается использования с программой cat)?
  • Linux и Unix - лучшая ОС в мире.