2014-01-22 12 views
1

В Windows у меня есть два отдельных сценария на Perl: первый записывается в два файла, а второй считывает два файла и выполняет задачи (одна из таких задач вызывает большое количество дочерних процессов, каждый из которых открывается в новой консоли) в соответствии с как быстро он обнаружил, что эти два файла обновлены.Почему мой код работает медленнее?

Первый скрипт установлен для обновления файлов каждые x секунд (обычно как 2 или 3 секунды). Я записываю эти времена в файл. Это отлично работает в первый раз, когда я запускаю скрипт, и он отлично работает, если я закрываю все консоли и перезагружаю его. Однако, если я оставлю консоли открытыми и запустим их (в одной из открытых консолей), первый скрипт займет МНОГО (от 3 до 5 раз) дольше, чтобы обновить файлы. Обратите внимание, что консоли не выполняют какой-либо код, они заканчивают работу примерно через 2 секунды.

Я думал, это странно. Также кажется, что первый скрипт больше не замедляется, поскольку я открываю больше консолей, но я не уверен в этом.

+1

Страдает от буферизации? – mob

ответ

2

1-ый комментарий относится к: http://perl.plover.com/FAQs/Buffering.html

вы, вероятно, хотите, чтобы отключить буферизацию. Так как вы не предоставляете код, это маленький самородок, чтобы вы начали.

$| = 1; 
Смежные вопросы