当网络阻塞时,虽然RUBY的线程是非原生线程,其作用还是在
服务器端
用phpg写了一个小页面,软件是用nginx+fastcgi,spawn-fcgi设置-C 为 20,启动20个进程,这样在多线程测试才有效,不然就是一个php cgi进程上面的队列,必须等第一个请求完成,第二个请求才会处理
php页面代码
<?php
sleep(3);
phpinfo();
?>
rub测试端
require 'open-uri'
s = Time.now
puts s
10.times do
open("http://localhost/index.php")
end
e = Time.now
puts e
puts "no thread #{e -s}"
threads = []
s = Time.now
puts s
10.times do
threads.push(Thread.new{ open("http://localhost/index.php") })
end
while true
threads.each {|t|
if t.alive?
Thread.pass
break
else
threads.delete t
end
}
break if threads.length < 1
end
e = Time.now
puts e
puts "thread #{e -s}"
测试结果,不用线程耗时30秒,启动10个线程,耗时3秒
分享到:
相关推荐
Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试 Ruby性能测试
ruby水平测试 ruby水平测试 ruby水平测试 ruby水平测试 ruby水平测试
ruby测试代码6
ruby测试代码1
ruby测试代码7
Howitzer - 基于ruby的验收测试框架
Watir - 在Ruby中Web应用程序测试
用Ruby写的一个网络爬虫,用到了正则表达式 和哈希表
Riot 是一个新的Ruby测试框架,作者是Justin Knowlden。它的主要目的是提高测试的效率。Justin对Riot与Test::Unit进行了比较,测试结果显示Riot比Test::Unit的测试速度快一倍多。 测试示例: context "a new user...
每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。 线程是程序中一个单一的顺序控制流程,在单个程序中同时运行多个...以下实例展示了如何在Ruby程序中使用多线程: #!/usr/bin/ruby def func1 i=
博客“ruby+selenium-webdriver测试-测试用例源代码”
博客“ruby+selenium-webdriver测试--多个测试用例”源代码
LazyHighCharts - 一个简单和非常灵活的方式从ruby代码使用HighCharts,经测试支持 Ruby on Rails, Sinatra 和Nanoc。
博客“ruby+selenium-webdriver测试--第一个例子源代码”
Ruby-JMeter - 一个基于Ruby的DSL用于构建JMeter测试计划
Ruby自动化脚本实现网络拓扑映射
学习ruby单元测试小结,主要是对Test::Unit的理解和学习
LightIO是一个ruby网络库,它结合了ruby fiber和快速IO event loop
ruby测试代码 ruby测试代码 ruby测试代码 ruby测试代码
ruby测试代码5