线程的上下文开销真得那么厉害吗(1)?
2006-01-07 00:11
302 查看
终究还是郁闷着了,为了JTangMQ的性能。
都是因为MQ,这个令人又爱又恨的家伙。想起当初刚刚开始设计JTangMQ的豪言壮志,为MQ设计、coding的三百多个日夜历历在目,如今却坐在椅子上一声叹息。为何JTangMQ的性能还是那么不尽如人意?为什么呢? 最初的设计目标是“超过国产MQ,迈向SonicMQ”,而现在的产品同JBossMQ相比还有那么一点的差距。这个差距令人诧异的地方是发送者&接受者分别在10个以下的时候,比JBossMQ要优越许多,而当发送者&接收者分别多于100个的时候,测试数据表明速度比JBossMQ还要少上几十个。记得当初设计的时候,就是因为JBossMQ为每个连接创建一个读线程&一个写线程,随着连接数的上升,线程数便会成倍增长,线程的切换会导致过多的cpu开销的原因,才利用NIO来设计JTangMQ的通讯层,想籍此点来提高JTangMQ在多连接数的性能。而现在的测试结构与原来的设计恰恰相反,连接数少的时候性能反而好。难道是因为线程的切换开销反不及减少线程数导致的cpu开销?是不是服务器端的线程数不够多呢?线程数在什么数量上才会是最好的选择呢?
也许试验才是最好的方式,明天再试试吧。不管行不行,都得继续走下去。
都是因为MQ,这个令人又爱又恨的家伙。想起当初刚刚开始设计JTangMQ的豪言壮志,为MQ设计、coding的三百多个日夜历历在目,如今却坐在椅子上一声叹息。为何JTangMQ的性能还是那么不尽如人意?为什么呢? 最初的设计目标是“超过国产MQ,迈向SonicMQ”,而现在的产品同JBossMQ相比还有那么一点的差距。这个差距令人诧异的地方是发送者&接受者分别在10个以下的时候,比JBossMQ要优越许多,而当发送者&接收者分别多于100个的时候,测试数据表明速度比JBossMQ还要少上几十个。记得当初设计的时候,就是因为JBossMQ为每个连接创建一个读线程&一个写线程,随着连接数的上升,线程数便会成倍增长,线程的切换会导致过多的cpu开销的原因,才利用NIO来设计JTangMQ的通讯层,想籍此点来提高JTangMQ在多连接数的性能。而现在的测试结构与原来的设计恰恰相反,连接数少的时候性能反而好。难道是因为线程的切换开销反不及减少线程数导致的cpu开销?是不是服务器端的线程数不够多呢?线程数在什么数量上才会是最好的选择呢?
也许试验才是最好的方式,明天再试试吧。不管行不行,都得继续走下去。
相关文章推荐
- 线程的上下文开销真得那么厉害吗(2)?
- java多线程之:创建开启一个线程的开销
- ASP EF框架,数据库操作类(上下文类)的实例创建,线程内唯一对象(HttpContext)
- Java类加载器之线程上下文类加载器(ContextClassLoader)
- 使用request.getContextPath()可以获得上下文资源, 那么什么是上下文资源? 使用上下文资源有什么作用?
- [转]线程上下文类加载器
- 进程、应用程序域、上下文及线程之间的关系
- 两个线程并发执行以下代码,假设a是全局变量,那么以下输出___哪个是可能的?
- 熊猫烧香真的那么厉害吗?我看是你们的安全意识太差了吧!
- 223_尚学堂_高淇_java300集最全视频教程_JVM核心机制_线程上下文类加载器_web服务器类加载机制_OSGI技术模块开发原理介绍
- linux进程、调度、线程、进程上下文等几点理解
- 如何向其他线程的地址空间中注入代码并在这个线程的上下文中执行之
- 线程锁的开销时间
- 任意线程上下文
- EF(Entity Framework)发生错误”正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不保证 DbContext 的实例成员和相关类是线程安全的。 临时解决了这个问题,在Context的构造函数中,禁用了自动初始化:
- 正在创建模型,此时不可使用上下文“的解决办法。 正在创建模型,此时不可使用上下文。如果在 OnModelCreating 方法内使用上下文或如果多个线程同时访问同一上下文实例,可能引发此异常。请注意不
- 怎么理解线程使用而不拥有资源?为什么进程切换的开销比线程切换大呢?
- 异常信息:CLR无法从COM 上下文0x645e18 转换为COM上下文0x645f88,这种状态已持续60秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送 Windows 消息的情况下处理一个运行时间非常长的操作.这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积
- EF上下文对象创建之线程内唯一
- 使用线程上下文类加载器加载class