首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jruby中运行nokogiri与在ruby中运行nokogiri

问在Jruby中运行nokogiri与在ruby中运行nokogiri
EN

Stack Overflow用户
提问于 2009-11-28 11:41:00
回答 2查看 606关注 0票数 0

我发现CPU和内存消耗的使用有惊人的不同。当我运行下面的nokogiri脚本时,垃圾收集似乎没有发生

代码语言:javascript
复制
require 'rubygems'
require 'nokogiri'
require 'open-uri'

def getHeader()
 doz = Nokogiri::HTML(open('http://losangeles.craigslist.org/wst/reb/1484772751.html'))
 puts doz.xpath("html[1]\/body[1]\/h2[1]")
end


(1..10000).each do |a|

getHeader()

end

在Jruby中运行时,CPU消耗超过10,并且内存消耗%随着时间的推移而上升(从2开始到20),直到最后显示“内存不足”。

当在Ruby中运行时,CPU消耗永远不会超过2,内存消耗%恒定为0.2!

为什么会有如此大的差异,为什么内存消耗会稳步增加,直到崩溃。

在Ruby中运行它,cpu使用率要低得多,内存消耗也一直很低

EN

回答 2

Stack Overflow用户

发布于 2009-11-28 19:21:02

我没看错你的脚本吧?您是否正在访问可怜的craigslist站点,执行10K HTTP get请求?:)

无论如何,你的系统是什么,哪个版本的诺基亚gem,哪个版本的JRuby?只需对脚本稍作修改(只打开一次HTTP请求,然后倒回相同的数据),MRI和JRuby的行为基本相同,JRuby的速度甚至快了2秒。没有记忆问题。

票数 3
EN

Stack Overflow用户

发布于 2012-06-06 06:03:03

ruby对内存的控制比Jruby更好。在我看来,只有在需要使用Java库的情况下,或者如果同一程序的多个实例同时运行在同一台机器上时,才应该使用Jruby,在这种情况下,JVM缓存将会做出令人惊叹的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1811472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档