Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby在VMware上的缓慢启动性能_Ruby_Jruby_Vmware - Fatal编程技术网

Ruby在VMware上的缓慢启动性能

Ruby在VMware上的缓慢启动性能,ruby,jruby,vmware,Ruby,Jruby,Vmware,我的旧上网本(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秒

我的旧上网本(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下使用32位来宾(i3-3220,应该比我的旧上网本快很多倍),它只需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内存,仅运行Unity、VMware和gnome终端)

运行单个脚本(向数据库生成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启动缓慢的原因是什么?

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

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


如果您以后决定加载gem,则在
require'some_gem'
行上方的一个简单的
require'rubygems'
就足够了。

您应该从禁用invoke dynamic开始(在JDK 1.7.0_40上启用,但已知会导致故障和性能下降)。。。尝试使用-Xcompile.invokedynamic=false启动
jruby
。谢谢,它在脚本
2:17/1:33/0:02
上运行得更快,在我的电脑上启动得更快,大约
6s