关于J2EE应用的效率

04-04-10 cats_tiger
大家有什么好的窍门吗?一起讨论讨论如何?

我窍门是软件不行硬件顶:(

问题1:硬件允许的前提下,Servlet容器和EJB 容器在一个JVM好还是在不同JVM下好?

问题2:是否应该尽量少用Remote接口?到底远程方法调用(用EJB)对效率的影响大,还是大量对象创建(不用EJB)对效率的影响大。

问题3:大量应用面向对象的设计的时候,会否影响效率(ArrayList al = new ArrayList()和List l = new ArrayList()哪个快? )

问题4:为什么都说EntityBean很慢?如果系统中没有很复杂的Transaction,而且数据库自身就很好的解决了并发问题,CMP还提供那些好处?

    

banq
2004-04-12 10:43
好问题,下面是我个人观点:

>问题1:硬件允许的前提下,Servlet容器和EJB 容器在一个JVM好还是在不同JVM下好?

如果能在一个JVM当然尽量在一个JVM,如果做集群,则不行了

>问题2:是否应该尽量少用Remote接口?到底远程方法调用(用EJB)对效率的影响大,还是大量对象创建(不用EJB)对效率的影响大。

远程调用应该尽量避免。大量对象创建,要视对象大小和调用的相关资源的多少。

>问题3:大量应用面向对象的设计的时候,会否影响效率(ArrayList al = new ArrayList()和List l = new ArrayList()哪个快? )

我感觉要做一个折中,不能在这个小方面过分苛求。

>问题4:为什么都说EntityBean很慢?如果系统中没有很复杂的Transaction,而且数据库自身就很好的解决了并发问题,CMP还提供那些好处?

CMP现在之所以没消亡,因为它的事务支持非常好,如果使用数据库解决事务,倒没必要使用CMP了。

cats_tiger
2004-04-12 11:44
谢谢banq

对于系统缓存,不知您是否有建议。我看了Jive的缓存,觉得不错,但是由于版本老,所以担心有一些BUG。Jakarta的Commons项目中有一个Pool的框架,我想利用它实现缓存。

目前我的项目中需要经常重复读取大量的数据。用Entity Bean不太合适。打算用DAO+JDBC,所以只好自己开发缓存了。

banq
2004-04-12 15:34
你说的非常对, Jive的缓存确实不错,但是重用性不好,无法提炼出重用到其它系统。

无论使用实体Bean还是DAO+JDBC,我都推荐在Web层做一层缓存,速度提升很多,JBossCache可以参考一下,当然,我的JdonSD中也有Cache,实现下来我个人认为不错。呵呵

cats_tiger
2004-04-13 08:42
计划用一周的时间读源代码,然后设计。

发现J2EE应用的难度不在于技术不会,而在于技术运用是否得当,比如这个项目,就是数据库应用而已,只是访问量大,效率问题就很突出了。

猜你喜欢
2Go 1 2 下一页