【发布时间】:2019-09-02 03:59:31
【问题描述】:
什么是系统地确定减速发生的最佳策略,以及将优化工作重点放在哪里?
我知道,我知道。一个简单的谷歌搜索显示了许多关于优化测试的文章。其中大多数建议尽量减少与数据库和外部 API 的交互——这些都是很好的建议,但这个问题却大不相同。
背景:
我继承了一个带有非常慢的测试套件的 Rails 应用程序 - 运行时间超过 45 分钟!我已经做了一些初步的挖掘,试图找出它为什么慢。
我已经单独运行了组件,看起来控制器、模型等都相当快,但可能 95% 的时间都花在了系统规范上。
看起来很多延迟都发生在初始化中。任何给定文件中的第一个规范似乎在 15-30 秒内运行,而同一文件中的所有后续规范在
但这些都是有根据的猜测和观察,基于手动运行一些不同的规范。并没有真正让我更接近于找出延误发生的地方。
确定我应该将优化工作重点放在哪里的最佳方法是什么 - 在非常基本的层面上,甚至确定我是否需要优化测试套件或应用程序本身?系统识别和监控哪些例程和方法运行缓慢的最佳方法是什么?
【问题讨论】:
标签: ruby-on-rails rspec rspec-rails