ruby线程运行速度测试

首先声明下,纯粹是想看下ruby thread和native thread的差距,并无意贬低ruby.

测试结果吓一跳,不是太快。和native thread相比,实在太慢。

代码很简单,每次启动10个ruby thread,做100000次的累加。连续运行10次,求运行平均值。
我的工作机,PC 2.8G,单核。1G内存,windows XP。测试的时候也没有特别清理运行环境,
最后的平均结果3.0937

[code]
time = 0
10.times do |k|
now = Time.now
puts now.to_s

count = 0
threads = []
10.times do |i|
threads[i] = Thread.new do
#sleep(rand(0.1))

100000.times do |j|
count += j
end
Thread.current["mycount"] = count
end
end

threads.each {|t| t.join; print t["mycount"], ", " }
puts "count = #{count}"

later = Time.now
time += later-now
puts later-now
end
puts time/10[/code]

然后同样的代码用C++写了一份,运行时间都测试不出来,时间差值几乎是0。几乎程序刚刚启动,运行就结束了。不像Ruby代码,还像模像样的运行了段时间。

HOHO。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值