如何诊断我非常慢的Ruby启动时间?

时间:2014-12-29 15:20:33

标签: ruby macos

当我输入涉及Ruby的命令(例如ruby somefile.rbrakerspec specirb)时,间歇性地执行该命令需要很长时间执行。例如,几分钟前,irb开始花了大约一分钟。几秒钟前,花了大约一秒钟。

在等待irb开始时,我反复按Control + T。我看到的一些输出包括:

load: 1.62  cmd: ruby 12374 uninterruptible 0.45u 0.13s
load: 1.62  cmd: ruby 12374 uninterruptible 0.48u 0.13s
load: 1.62  cmd: ruby 12374 uninterruptible 0.53u 0.15s

On OSX, this output represents“加载,命令运行,pid,状态以及使用的用户和系统CPU时间”。看来,当我等待53秒时,使用的CPU时间仅为0.15秒。

我对负载的理解是it's roughly "how many cores are being used"。例如,在单核系统上,1.0是完全利用率,但在四核机器上,利用率为25%。我不认为负载量是问题,因为我的机器是多核的。此外,当irb快速启动时,我可以获得一行输出,Control + T也高于1.0

load: 1.22  cmd: ruby 12452 running 0.26u 0.02s

我还注意到,在好的情况下,状态是“正在运行”,而不是“不可中断”。

如何诊断和修复这些慢启动?

1 个答案:

答案 0 :(得分:1)

这是一个远景。尝试安装haveged

我以前见过这个问题。这解决了我。有时,对于试图加载随机数池的库或Ruby元素,没有足够的熵。

如果你注意到当你输入更多内容时,某些东西的开始时间很快,那么使用大量的网络流量来移动你的鼠标 - 然后是熵,这会违背你的大部分内容# 39; d想。

如果有更多的处理器和RAM使用,与系统的更多交互等 - 你认为它会变慢,但在熵耗尽的情况下,这实际上正是你所需要的