浏览 4102 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-01
最后修改:2009-04-01
起13个并发没问题, 一个并发指一个连接, 每个并发通过这个方法实现:Ice::initialize(ARGV) 到14个并发或者以后,ruby报如下异常: Thread.cpp:206: IceUtil::ThreadSyscallException: syscall exception: 存储空间不足,无法处理此命令。 我一步步调,发现运行到13个并发的时候我机器内存也不大啊, 其它的错误信息还有: 04/01/09 15:43:21.898 error: exception in selector while calling closeSocket(): Network.cpp:688: Ice::SocketException: socket exception: WSAENOTSOCK 真nb,报的这个错我还头一次见到。 留贴记录! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-01
今天NB了,
有一个奇怪的报错, 是不是gc 的bug有待考验 Calls(eval):405: [BUG] object allocation during garbage collection phase ruby 1.8.6 (2008-08-11) [i386-mswin32] |
|
返回顶楼 | |
发表时间:2009-04-01
最后修改:2009-04-01
CharlesCui 写道 今天NB了,
有一个奇怪的报错, 是不是gc 的bug有待考验 Calls(eval):405: [BUG] object allocation during garbage collection phase ruby 1.8.6 (2008-08-11) [i386-mswin32] 哈哈,这个是插件的bug,我遇到过,是act_as_ferret引起的!你检查下gem list http://www.ruby-forum.com/topic/161876 |
|
返回顶楼 | |
发表时间:2009-04-01
嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。
不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷? 我搞不定。 |
|
返回顶楼 | |
发表时间:2009-04-01
CharlesCui 写道 嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。
不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷? 我搞不定。 啥脚本贴出来看看? 用介个试试 http://www.rubyenterpriseedition.com/,打了不少补丁 |
|
返回顶楼 | |
发表时间:2009-04-01
liuqiang 写道 CharlesCui 写道嘿嘿,哥们,我这个不是rails,就是个ruby的脚本。 不过看你那个链接里wxruby也有这个问题,那我估计是不是ruby1.8.6自身的一个潜在缺陷? 我搞不定。 啥脚本贴出来看看? 用介个试试 http://www.rubyenterpriseedition.com/,打了不少补丁 #int getUserProfileByUserId(string userId,out com::alisoft::member::udb::api::model::UserProfile userProfile); require 'Ice' require 'pp' require 'benchmark' $:<<File.expand_path(File.join(File.dirname(__FILE__), '..', 'ice')) Ice::loadSlice('../ice/user_lsj.ice') include Com::Alisoft::Member::Udb::Api::User #全局变量常量在此处定义 status = 0 ics =[] currNo=10 itNo=10000 ic = [] #初始化代码块 init = proc { currNo.times do |x| ic << Ice::initialize(ARGV) ics << {:base => UserServicePrx::checkedCast(ic[-1].stringToProxy("userService:default -h 10.2.224.242 -p 10002"))} end }.call #迭代执行代码块 action = proc { count=0 iceCall = proc { itNo.times do |y| ics.each_index do |x| uid="#{22000005+count}" count+=1 std=ics[x][:base].getUserProfileByUserId(uid) end end} rep=nil puts "Performance Reports".center(50, '*') Benchmark.bm(5) do |x| rep=x.report("Calls",&iceCall) end puts '--'*32 puts "Total Execute #{itNo*currNo} Action(s)" puts "Total Cost #{rep.real} Second(s)" puts "This Scenario's TPS : #{itNo*currNo/rep.real}" puts "End of Reports".center(50, '*') }.call #终止代码块 ended = proc { ic.each do |x| x.destroy() if x end }.call currNo是并发数 itNo是每个并发在action代码块中执行的次数, 这两个都不能大,大了都会有上面那些错误。 |
|
返回顶楼 | |
发表时间:2009-04-01
又出现一个奇怪的错误,nnd
runtime error R6025 - pure virtual function call 不知道给ruby的core team找bug他们给我发工资不。 |
|
返回顶楼 | |
发表时间:2009-04-01
一样的代码,
时而这个错: object allocation during garbage collection phase 时而这个错: runtime error R6025 - pure virtual function call |
|
返回顶楼 | |
发表时间:2009-04-01
http://www.rubyenterpriseedition.com/
这个ruby企业版和passenger一个team出品的吧? 是不是专门给passenger优化过的? 我估计是,用这玩意说不定运行passenger快,运行thin啊mongrel啊说不定就变慢了。 |
|
返回顶楼 | |