ruby 线程的性能测试
来源:互联网 发布:英国脱欧影响知乎 编辑:程序博客网 时间:2024/06/06 08:00
在使用中ruby的过程中难免会遇到提高性能的问题,由此便想起了ruby线程。但是我在使用中却发现ruby的线程却不能提高性能。我写了以下代码,做了些简单测试。
代码
测试结果如下
"没有使用线程,线程的处理代码里没有sleep" -> 24秒
2009-12-02 23:03:11 +0800
#<DateTime: 1993-02-24T12:30:45+00:00 (4702162601/1920,0/1,2299161)>
#<DateTime: 1993-02-25T12:30:45+00:00 (4702164521/1920,0/1,2299161)>
2009-12-02 23:03:35 +0800
"使用线程,线程的处理代码里没有sleep" -> 26秒
2009-12-02 23:03:35 +0800
#<DateTime: 1993-02-25T12:30:45+00:00 (4702164521/1920,0/1,2299161)>
#<DateTime: 1993-02-24T12:30:45+00:00 (4702162601/1920,0/1,2299161)>
2009-12-02 23:04:01 +0800
"使用线程,线程的处理代码里有sleep" -> 3秒
2009-12-02 23:04:01 +0800
3
3
2009-12-02 23:04:04 +0800
"没有使用线程,线程的处理代码里有sleep" -> 5秒
2009-12-02 23:04:04 +0800
3
3
2009-12-02 23:04:09 +0800
分析
从上面可以的结果看出,一旦你的处理很忙的时候,没有空闲的话,使用ruby的多线程反而性能会变低。如果你的处理有空闲的话,使用多线程,就能达到提高性能的目的。其中官方也提到了ruby的线程并不能提高运行速度。(http://www.ruby-lang.org/ja/man/html/Thread.html 日文的)
* 线程定义参考
ruby线程概述
线程(Thread)就是指能在一个程序中处理若干控制流的功能。与OS提供的进程不同的是,线程可以共享内存空间。
Ruby中使用的线程是用户级线程,由Ruby解释器进行切换管理。其效率要低于由OS管理线程的效率,且不能使用多个CPU,这确实是它的缺点。但其优点也很明显,即可移植性很高。
引用URL:http://hi.baidu.com/chenjinze/blog/item/b4edde1c831bcc8887d6b633.html
- ruby 线程的性能测试
- 页面性能测试-Ruby篇
- 页面性能测试-Ruby篇
- 关于ruby几种String连接性能的小测试
- 线程上下文切换的性能损耗测试
- ruby的线程
- ruby: 如何测试ruby的执行效率?
- 单线程socket性能测试
- 线程并发测试服务器性能
- ruby的线程和进程
- 关于JAVA中线程同步的性能测试
- 性能测试线程队列阻塞的现象之一
- ruby 线程
- 并发测试Twitter snowflake id,顺带测试了下几种list set的性能和线程安全性
- testng性能测试,循环测试,线程测试,优先级
- Linux 线程库性能测试与分析
- 性能测试,netty线程调优
- Linux 线程库性能测试与分析
- Java实现 二分查找
- Notification和NotificationManager的基本使用方法
- Rdoc生成类图
- 正在进行的和持续的Notification
- “Setup encountered problems instaling some critical emulation componets...”的解决方法
- ruby 线程的性能测试
- 个人总结的几条比较有意思的sql语句
- 解决Ubuntu上ADB找不到设备的问题
- 十大电子产业革命后果(上)
- 普通函数,成员函数,静态成员函数与【指针】
- 佛學心語
- 哈佛成功金句
- 看相册有感
- 求质数