我经常在每次迭代中运行几行 Ruby 脚本,puts
以查看我的程序在运行时正在做什么。其中许多脚本非常耗时,需要几分钟才能完成。
我想知道向命令行输出('打印')是否会减慢这些脚本的完成速度,如果是,会减慢多少。
puts
如果它只有 5% 的减速,我并不是很在意,但在我如此自由地使用我的之前,还有什么值得了解的。
有很多变量会改变你的答案。Ruby 版本、你的编译器、你的 STDLib、你的 CPU,甚至像语言环境设置这样深奥的东西都会对puts
.
唯一的答案是做一些基准测试。如果你在 Unix 系统上,你可以从简单的开始
time ruby program.rb
然后注释掉puts
并再次运行它,比较答案。
如果您有特定的代码块需要进行基准测试,您也可以使用Ruby 附带的Benchmark模块。
根据我的经验,在文本编辑器上连续打印到打开的终端或 shell 模式会显着减慢代码执行速度,尤其是在将代码突出显示应用于输出时。处理此问题的一个好方法是输出到日志文件,并在需要时读取该文件。