`
cxh116
  • 浏览: 76791 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

经测试,RUBY的线程用在网络这一块还是有点用

阅读更多
当网络阻塞时,虽然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秒
分享到:
评论
2 楼 cxh116 2011-10-31  
skandhas 写道
Ruby1.9的线程早就是原生线程了。

1.9虽然是原生线程,但还是有 全局解释器锁 ,应该没有多大差别
1 楼 skandhas 2011-10-31  
Ruby1.9的线程早就是原生线程了。

相关推荐

    Ruby-性能测试(完整版)

    Ruby性能测试是软件开发过程中一个至关重要的环节,尤其是在使用Ruby这种动态编程语言时。它确保了代码在实际生产环境中的高效运行,避免了资源浪费和潜在的性能瓶颈。本资料包详细介绍了Ruby性能测试的各个方面,...

    Ruby教程.chm和Ruby程序设计.doc

    这可能是一份详细的指导文档,涵盖了更高级的主题,如文件操作、网络编程、数据库交互、线程和并发、Gem(Ruby的库管理器)的使用、测试驱动开发(TDD)以及Rails框架的基础知识。Rails是Ruby最著名的Web应用框架,...

    programming+ruby中文版第二版

    《Programming Ruby中文版第二版》是一本专注于Ruby编程语言的权威指南,对于想要深入学习和理解Ruby编程的读者来说,是一本不可多得的资源。Ruby作为一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元...

    ruby 1.9.3 p484稳定版本

    在使用ruby 1.9.3 p484时,开发者可以利用其强大的Gem生态系统,这是一个庞大的第三方库集合,涵盖了各种功能,如Web框架(如Ruby on Rails)、测试工具、数据库连接器等。通过`gem install`命令,开发者可以轻松地...

    ruby中文文档

    通过查阅这个文档,你可以深入学习Ruby的各个部分,包括类的定义、模块的使用、异常处理、文件和目录操作,以及如何使用Ruby进行网络编程和数据库交互等。同时,文档可能还会包含示例代码和实践指导,以帮助你更好地...

    ruby实战书、代码书.rar

    5. **异常处理**:如何使用`begin-rescue-end`块进行错误处理是Ruby编程中的重要一环,书里可能会讲解异常类和如何捕获及处理错误。 6. **文件和IO操作**:Ruby提供了方便的文件和输入/输出操作,书里可能包含读写...

    everyday scripting with ruby

    ### Ruby脚本编程基础知识 #### 一、Ruby语言概述 《Everyday Scripting with Ruby》是一本面向软件测试从业者及希望提升自动...无论你是刚接触Ruby的新手还是希望提升技能的资深开发者,这本书都将是一份宝贵的资源。

    ruby-2.0.0-p0.tar

    3. ** Fiber和Concurrent Programming**:Ruby 2.0引入了Fiber,这是一种轻量级线程,用于实现协程。这为开发者提供了更好的并发处理能力,尤其是在I/O密集型任务中。 4. **块参数**:Ruby 2.0允许块参数以`&`符号...

    ruby入门到精通

    12. **测试驱动开发(TDD)和持续集成**:Ruby社区重视测试,因此学习如何使用Rspec等测试工具,以及如何实施TDD和持续集成实践也是重要的一环。 “Ruby从入门到精通(1).pdf”这本书很可能会涵盖以上所有主题,并...

    Ruby 语法. Ruby 是一种开源的面向对象程序设计的服务器端脚本语言

    - **标准库**:Ruby 配备了一个丰富的标准库,提供了一系列功能强大的模块和类,涵盖了网络通信、文件处理、正则表达式等多种领域。 #### 三、Ruby 语言环境与安装 - **跨平台**:Ruby 可以在多种操作系统上运行,...

    Ruby-RubyChina社区的精华帖

    7. **测试驱动开发(TDD)与集成测试**:在Ruby社区中,TDD是一种常见的开发实践,而RSpec和MiniTest是常用的测试框架。 8. **RubyGems**:Ruby的标准包管理器,用于发布、安装和管理Gem。 9. **Sinatra**:轻量级...

    Ruby - Ruby for Rails

    - **块与闭包**:介绍块的概念及其与闭包的区别,以及如何在 Ruby 中使用它们。 #### 2.5 控制流技术 - **条件语句**:讲解 if、unless 等条件语句的使用方法。 - **循环结构**:介绍 while、for、each 等循环语句...

    ruby cookbook

    《Ruby Cookbook》是一本专注于Ruby编程语言实践应用的书籍,旨在帮助开发者解决在编写Ruby代码时遇到的各种问题。这本书提供了一系列详细的解决方案和示例,涵盖了从基础语法到高级特性的各个方面,是Ruby程序员的...

    Ruby-Rbkit一个新的Ruby分析器包含一个GUI

    在Ruby开发中,性能监控是一项至关重要的任务,尤其是在处理高负载或大数据量的应用时。Rbkit提供了深入的性能剖析功能,可以帮助开发者找出代码中的瓶颈,从而提高应用程序的运行效率。通过其GUI,用户可以轻松地...

    ruby初学者教程(对初学者很有帮助)

    irb是一个命令行工具,可以让开发者直接在命令行中测试Ruby代码片段,非常适合学习和调试。 **2.4 使用ri(Ruby信息) ri是一个内置的帮助系统,可以帮助开发者查询Ruby文档和API。 **2.5 RubyGems** RubyGems是...

    Ruby语言中文教程

    - 块:Ruby中的块是代码段,通常用在循环或方法调用中,用花括号{}或do..end包围。 - Proc对象:可以捕获并存储块,作为对象传递和存储。 - Lambda:类似于Proc,但更接近于传统的函数,尤其在参数检查和返回行为...

Global site tag (gtag.js) - Google Analytics