ruby-on-rails - 性能测试 - 测试 :profile vs test:benchmark, 墙上时间与处理时间

标签 ruby-on-rails

我是 Rails 性能测试的新手。有人可以解释一下挂墙时间和处理时间之间的区别吗?更重要的是,来自 test:benchmark 和 test:profile 的时间结果之间有什么区别。显然存在重大差异,我还没有从文档中收集到这一点。一些事实:

当我运行 rake test:benchmark 时,我得到:

EditorTest#test_augment_large_doc (618 ms warmup)
           wall_time: 554 ms
              memory: 0.00 KB
             objects: 0
             gc_runs: 0
             gc_time: 0.00 ms

当我运行 rake test:profile 时,我得到:

EditorTest#test_augment_large_doc (617 ms warmup)
        process_time: 1.74 sec
              memory: unsupported
             objects: unsupported

我已阅读:

...但我仍然不明白这些类型的性能测试之间的根本区别以及为什么时间相差如此之大。

还有一些事情:当我跟踪我的开发日志时,我得到的时间通常比 test:benchmark 的实际时间要长一点(0.1 秒)。而且,当我在 firebug 或 chrome 中查看 XHR 请求时间时,我得到的时间通常要高 0.3 秒。

提前致谢!

[编辑]

嗯...没有回应。任何意见?这是 Rails 开发人员经常使用的工具吗?这种差异与优化过程无关吗?

最佳答案

据我了解,wall time 顾名思义,就是测试期间经过的秒数。处理时间略有不同,用于衡量执行程序所花费的 CPU 时间。

http://en.wikipedia.org/wiki/CPU_time

一般来说,基准测试和分析之间的差异与相同的区别有关。基准测试是一个简单的过程,多次运行一堆代码并查看需要多长时间。

分析更加详细,可以显示代码的不同部分花费了多长时间,包括对堆栈中所有方法的调用次数。运行完整配置文件所需的时间并不代表性能,而是向您显示应用中不同代码部分的相对性能。

关于ruby-on-rails - 性能测试 - 测试 :profile vs test:benchmark, 墙上时间与处理时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4665591/

相关文章:

Mysql2::错误:表中不存在键列 'hotel_user_id'

ruby-on-rails - Rails 每个循环每 6 个项目插入标签?

ruby-on-rails - 我可以在执行 STI 的同时仍然使用多态路径助手吗?

mysql - 使用电子邮件创建新用户作为软删除用户

mysql - ruby中安装MYSQL gem时出现gem安装错误

ruby-on-rails - 为什么只有某些调用会使用 devise_token_auth 使 token 失效/替换

ruby-on-rails - sanitize 和 strip_tags rails 之间的区别

ruby-on-rails - Amazon S3 直接上传无法识别文件的内容类型

ruby-on-rails - 在 OSX 上使用 Rails 在本地使用 SSL 进行开发

ruby-on-rails - 如何在 Rails 中拥有不同的环境变量值?