【问题标题】:Ruby slow startup performance on VMwareRuby 在 VMware 上的启动速度慢
【发布时间】:2013-09-27 06:52:00
【问题描述】:

我的旧上网本 (AMD C-60) 在启动 Sinatra 应用程序时会在 5-7 秒 (Ruby)、23-24 秒 (JRuby) 内启动

操作系统(上网本):32 位 Arch Linux 3.4.62-1 i686 PAE(2GB RAM)

我的开发 PC (AMD A8-6600K) 启动时间为 1-2 秒 (Ruby),12-16 秒 (JRuby)

操作系统(PC):32 位 Arch Linux 3.11.1-1 i686 PAE(8GB RAM)

当我在我的开发 PC 上添加 vmware 时,从 0.9-2 秒 (Ruby)、7 秒 (JRuby) 开始

来宾操作系统 (vm-pc):32 位 Arch Linux 3.11.1-2 i686(1.5GB RAM)

在 64 位 VMware 下(i3-3220,这应该比我的旧上网本快很多倍)下使用 32 位客户机时,它在 45-46 秒内启动(Ruby), 30-37 秒 (JRuby)..

来宾操作系统 (vm-i3):32 位 Arch Linux 3.11.1-2 i686(1.5GB RAM)

主机操作系统:64 位 Ubuntu Linux 3.8.0.19 x86_64 13.04(2GB RAM,仅运行 Unity、VMware 和 gnome-terminal)

运行单个脚本时(生成12MB数据到数据库),性能正常:

real/user/sys
netbook: ruby: 4:25/2:13/0:02 jruby: 13:21/11:46/0:09
pc:      ruby: 1:39/0:31/0:05 jruby:  3:52/ 3:38/0:03
vm-pc:   ruby: 0:40/0:31/0:06 jruby:  3:25/ 3:12/0:02
vm-i3:   ruby: 1:18/0:21/0:05 jruby:  3:16/ 2:19/0:35

配置:

Ruby: using Thin web server, ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]

JRuby: using Trinidad web server, jruby -v
jruby 1.7.4 (1.9.3p392) 2013-05-16 2390d3b on OpenJDK Client VM 1.7.0_40-b31 +indy [linux-i386]

vm-i3 启动缓慢的原因有哪些?

【问题讨论】:

  • 您应该首先禁用动态调用(在 JDK 1.7.0_40 上启用,但已知会导致问题和性能下降)...尝试使用 -Xcompile.invokedynamic= 启动 jruby错误
  • 谢谢,它在脚本 2:17/1:33/0:02 上运行得更快,并且在我的 PC 上启动得更快,大约 6s

标签: ruby jruby vmware


【解决方案1】:

问题出在/etc/hosts 文件上,忘记添加包含 localhost/hostname 的行

【讨论】:

    【解决方案2】:

    另一个可能会在启动时减慢 ruby​​ 的东西是 rubygems 模块。如果您不需要加载 gems,您可以通过运行 ruby​​ 并使用 --disable-gems 选项来加快启动速度。

    如果您稍后决定要加载 gem,只需在 require 'some_gem' 行上方添加一个简单的 require 'rubygems' 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 2023-03-19
      • 1970-01-01
      • 2021-08-31
      • 2014-12-01
      • 2011-08-16
      相关资源
      最近更新 更多