我是Perl的新手,我必须在工作中做一些自动化。我必须走一条包含多个文件的目录的路径,并打印读取或打开特定文件所需的平均时间。非常感谢任何帮助。
答案 0 :(得分:5)
使用Time::HiRes可以更精确地计时。
为什么要打印平均时间?这将以任何有意义的方式变得非常困难;缓存将使第一个更快的读取。
答案 1 :(得分:2)
Perl拥有出色的基准测试和计时工具。
虽然Time::HiRes可以准确计算时间,但您可能希望考虑更完整的基准测试工具,以查看开放,阅读或其他阅读是否是瓶颈。如果Time :: HiRes是你包里唯一的工具,你还需要编写代码来计算相关位。
对于语句级别基准测试,我使用Devel::NYTProf。它使用起来相当简单,并且具有漂亮的HTML输出,可以显示程序的内容。
对于非常快速,简单的子程序级别基准测试,我使用核心模块Benchmark。 Randal Schwartz有一篇关于在Unix Review here中使用Benchmark的文章。 Benchmark可用于在几秒钟内按字面计算语句或子例程。最好与Time :: HiRes结合使用,以获得更准确的时序。基准是核心分布;需要从CPAN安装Time :: HiRes。
从一开始最简单的方法是安装Time :: HiRes,然后在相关语句或子例程的时间使用Benchmark作为简单表。如果似乎还有更多要深入研究,请使用更复杂的Devel :: NYTProf。
答案 2 :(得分:0)
您可以使用time()函数来获取文件开头和结尾的时间 然后你可以计算它们之间的差异。然后你可以平均出来。您也可以通过阅读文件来做同样的事情