为什么我的代码执行得更慢?

时间:2014-01-22 21:02:38

标签: windows performance perl parallel-processing

在Windows中,我有两个单独的Perl脚本:第一个写入两个文件,第二个读取两个文件并执行任务(一个此类任务调用大量子进程,每个进程在新控制台中打开)它发现这两个文件的更新速度有多快。

第一个脚本设置为每隔 x 秒更新文件(通常为2或3秒)。我将这些时间记录在一个文件中。这在第一次运行脚本时工作正常,如果我关闭所有控制台然后重新启动它,它可以正常工作。但是,如果我打开控制台并启动它(在其中一个打开的控制台中),第一个脚本需要花费很多(3到5倍)来更新文件。请注意,控制台没有执行任何代码,他们在大约2秒内完成工作。

我觉得这很奇怪。当我打开更多控制台时,第一个脚本似乎不再减速,但我不确定这一点。

1 个答案:

答案 0 :(得分:2)

第一条评论指的是:http://perl.plover.com/FAQs/Buffering.html

你可能想要关闭缓冲。既然你没有提供任何代码,这里有一个小块来帮你入门。

$| = 1;