问题描述
|
我正在尝试使用ruby-prof,并将其运行在一个相对独立的模块上。该模块的核心是3个类,可能正在使用其他3个帮助器类。因此,不应有成千上万的需求和内在负担。在安装了很多宝石的大型(gish)应用程序中,这是否正常?
18.06 7.67 1.99 0.00 7.66 1366 Kernel#require
5.80 1.21 0.64 0.00 0.83 18704 Array#map
5.73 10.21 0.63 0.00 10.09 38133 Array#each
5.17 1.13 0.57 0.00 0.56 21796 Array#include?
4.40 0.49 0.49 0.00 0.00 345434 Symbol#to_s
3.78 0.42 0.42 0.00 0.00 446478 String#==
解决方法
根据
ruby-prof
的文档:
要分析Rails应用程序,它是
使用生产来运行它至关重要
设置(缓存类,缓存视图
查找等)。否则,Rail的
依赖加载代码将不堪重负
在应用程序中花费的任何时间
本身(我们的测试表明,Rails
依赖加载导致大约6倍
慢一点)。
您是否使用生产设置运行此程序?如果您不使用缓存的数据,而是每次都必须从磁盘读取文件/类,那么我可以理解为什么您看到系统在ѭ2中花费如此多的时间。
, 根据您的描述,我在一个类似的案例中运行了ruby-prof,但是我的只需要两个宝石,我认为这不是“一个公数”。话虽如此,我仍然在Kernel#gem_original_require类上花费了我7秒运行时间的10%。
我认为您所看到的是非常典型的,因为它似乎可以与我的案例相提并论。