Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

07 2008 档案

ejb与java序列化(3)--开启enable-call-by-reference
     摘要: 问题终于找到,简单的说是因为java 系列化的效率低下,而ejb调用之间又大量使用系列化,因此造成极大的性能消耗,而且也影响到响应时间。仔细分析了一下项目情况,呵呵,情况非常严重,系统架构是按照三层来设计的,每个层都是ejb,调下一层都是通过远程接口,而且层之间可能还多个ejb的调用。
总结一下:
1. java serialize 非常慢
2. enable-call-by-reference可以有效避免这个开销
因此,能enable-call-by-reference就尽量enable-call-by-reference。  阅读全文

posted @ 2008-07-29 12:03 sky ao 阅读(1604) | 评论 (5)  编辑

ejb与java序列化(2)--测试代码
     摘要: 接上篇,有兴趣的朋友可以直接拿我的测试代码自行测试,请自行修改诸如线程数,执行时间,系列化的数据量大小等参数。如果想尝试做thread dump,可以打开相关的两个注释,会更方便一些,代码中都有相应的注释可供参考。  阅读全文

posted @ 2008-07-29 10:36 sky ao 阅读(1058) | 评论 (0)  编辑

ejb与java序列化(1)--发现并分析问题
     摘要: 这是加入新公司后接手的第一个项目,使用weblogic9.2 + ejb2.0,压力测试时发现速度非常慢,响应时间很不理想,检查日志发现,某些ejb相互调用时方法调用的时间非常长,高达300-500毫秒。非常夸张,因为两个日志之间只是间隔了一个ejb调用。通过thread dump分析后发现有相当多的线程在wait,检查线程调用绽发现是在将参数进行序列化时,线程试图加锁但是锁被占用,因此处于等待状态。考虑到 thread dump的这一瞬间,有多达30-50个线程都在同时试图在同一个锁上加锁,很明显这里的锁竞争非常严重。

因此强烈怀疑是java的序列化机制导致的问题。  阅读全文

posted @ 2008-07-29 10:21 sky ao 阅读(1327) | 评论 (0)  编辑