当网络阻塞时,虽然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性能测试的各个方面,...
这可能是一份详细的指导文档,涵盖了更高级的主题,如文件操作、网络编程、数据库交互、线程和并发、Gem(Ruby的库管理器)的使用、测试驱动开发(TDD)以及Rails框架的基础知识。Rails是Ruby最著名的Web应用框架,...
《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...
在使用ruby 1.9.3 p484时,开发者可以利用其强大的Gem生态系统,这是一个庞大的第三方库集合,涵盖了各种功能,如Web框架(如Ruby on Rails)、测试工具、数据库连接器等。通过`gem install`命令,开发者可以轻松地...
通过查阅这个文档,你可以深入学习Ruby的各个部分,包括类的定义、模块的使用、异常处理、文件和目录操作,以及如何使用Ruby进行网络编程和数据库交互等。同时,文档可能还会包含示例代码和实践指导,以帮助你更好地...
5. **异常处理**:如何使用`begin-rescue-end`块进行错误处理是Ruby编程中的重要一环,书里可能会讲解异常类和如何捕获及处理错误。 6. **文件和IO操作**:Ruby提供了方便的文件和输入/输出操作,书里可能包含读写...
### Ruby脚本编程基础知识 #### 一、Ruby语言概述 《Everyday Scripting with Ruby》是一本面向软件测试从业者及希望提升自动...无论你是刚接触Ruby的新手还是希望提升技能的资深开发者,这本书都将是一份宝贵的资源。
3. ** Fiber和Concurrent Programming**:Ruby 2.0引入了Fiber,这是一种轻量级线程,用于实现协程。这为开发者提供了更好的并发处理能力,尤其是在I/O密集型任务中。 4. **块参数**:Ruby 2.0允许块参数以`&`符号...
12. **测试驱动开发(TDD)和持续集成**:Ruby社区重视测试,因此学习如何使用Rspec等测试工具,以及如何实施TDD和持续集成实践也是重要的一环。 “Ruby从入门到精通(1).pdf”这本书很可能会涵盖以上所有主题,并...
- **标准库**:Ruby 配备了一个丰富的标准库,提供了一系列功能强大的模块和类,涵盖了网络通信、文件处理、正则表达式等多种领域。 #### 三、Ruby 语言环境与安装 - **跨平台**:Ruby 可以在多种操作系统上运行,...
7. **测试驱动开发(TDD)与集成测试**:在Ruby社区中,TDD是一种常见的开发实践,而RSpec和MiniTest是常用的测试框架。 8. **RubyGems**:Ruby的标准包管理器,用于发布、安装和管理Gem。 9. **Sinatra**:轻量级...
- **块与闭包**:介绍块的概念及其与闭包的区别,以及如何在 Ruby 中使用它们。 #### 2.5 控制流技术 - **条件语句**:讲解 if、unless 等条件语句的使用方法。 - **循环结构**:介绍 while、for、each 等循环语句...
《Ruby Cookbook》是一本专注于Ruby编程语言实践应用的书籍,旨在帮助开发者解决在编写Ruby代码时遇到的各种问题。这本书提供了一系列详细的解决方案和示例,涵盖了从基础语法到高级特性的各个方面,是Ruby程序员的...
在Ruby开发中,性能监控是一项至关重要的任务,尤其是在处理高负载或大数据量的应用时。Rbkit提供了深入的性能剖析功能,可以帮助开发者找出代码中的瓶颈,从而提高应用程序的运行效率。通过其GUI,用户可以轻松地...
irb是一个命令行工具,可以让开发者直接在命令行中测试Ruby代码片段,非常适合学习和调试。 **2.4 使用ri(Ruby信息) ri是一个内置的帮助系统,可以帮助开发者查询Ruby文档和API。 **2.5 RubyGems** RubyGems是...
- 块:Ruby中的块是代码段,通常用在循环或方法调用中,用花括号{}或do..end包围。 - Proc对象:可以捕获并存储块,作为对象传递和存储。 - Lambda:类似于Proc,但更接近于传统的函数,尤其在参数检查和返回行为...