【发布时间】: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