线程的上下文开销真得那么厉害吗(2)?
来源:互联网 发布:wowtbc数据库 编辑:程序博客网 时间:2024/05/16 18:46
线程切换的开销的确是比较厉害的。这是从今天的实验中得出的结果。
为了解决上次提出的疑问,今天在实验室做了一个试验,来测试线程的切换是否开销比较大。由于主要是为了比较线程的数目多少对性能的影响,所以,具体的测试环境就不提了,只要每次实验在同等的条件下即可。
首先,在MQ的Server端启动100个读线程,100个写线程,100个消息deliver线程,客户端同时启动100个发送者,100个接收者,对4个queue进行不断发送1K大小的消息,测试结果为大约每秒可以发送&接收600个左右的消息。而此时客户端的cpu消耗大概在80%左右,服务器端的cpu消耗在100%,但是线程切换大概占了30%左右。也就是说,只有70%的cpu用于消息的处理。
接着,在MQ的Server端启动10个读线程,10个写线程,10个消息deliver线程,客户端同时启动100个发送者,100个接收者,对4个queue进行不断发送1K大小的消息,测试结果为大约每秒可以发送&接收800个左右的消息。此时客户端的cpu消耗一般在90%以上,服务器端的cpu消耗在100%,而线程切换大概占了10%左右。也就是说,有90%的cpu用于消息的处理。
随后,又对server端采用4个读写线程、消息deliver线程,以及20个,50个等不同线程数进行了测试,测试结果都没有优于10个线程数的情况。
所以,可以得出结论,对于单cpu的情况,线程的切换的确会带来相当大的开销。今天的测试结果同时也表明了JTangMQ在100个发送者,100个接收者的情况下已经比JBossMQ每秒多发送&接收100个消息,而在400个发送者,400个接收者的情况下,发送速度比JBossMQ多出几十个,接收着少了几十个,总体性能已经相当。当然,在发送者&接收者数目较少的时候,性能明显优于JBossMQ。所以,接下来的目标是在多发送者&接收者的条件下,超过JBossMQ,做到性能的全部提升。
- 线程的上下文开销真得那么厉害吗(2)?
- 线程的上下文开销真得那么厉害吗(1)?
- [Linux] 线程上下文切换的开销?
- 熊猫烧香真的那么厉害吗?我看是你们的安全意识太差了吧!
- 多线程中两个必要的开销:线程的创建、上下文切换 上下文切换
- 你真的很牛很厉害吗?
- 苹果真的很厉害!
- 他没你想象的那么厉害!
- 我真的那么爱学习吗?
- 域名真的那么重要吗?
- 学校教育真的那么重要吗?
- 工作真的就那么难找吗
- 春运买票真的那么夸张吗?
- 自己真的那么小心眼吗
- C++真的那么可怕吗?!
- 电脑真的有那么神奇吗?
- 嵌入式真的那么重要吗?
- 生男生女真的那么重要吗?
- 老婆做的测试。哈哈
- 如何正确地写存储过程
- Visual Studio 2010 Concept IDE(转!非常有意思)
- java23面试题
- 转贴:此情可待成追忆,只是当时已惘然。- -
- 线程的上下文开销真得那么厉害吗(2)?
- 给我未来的孩子--(转载)
- 以前的同学已经回来过年了。
- 一些比较好的学习网站
- C++ primer plus 第五版 学习笔记 5章7题
- VC用ADO访问数据库全攻略
- 李开复致信中国大学生:大学4年应是这样度过
- NinjaQ's blog开张,发文留念
- C++ primer plus