按照j2ee标准写的和一个设计良好的程序,通常并不存在什么性能瓶颈,性能主要依赖于硬件和应用服务器及其运行配置。我觉得,ejb只是对pojo类进行了一个分布式封装,成为一个可分布式运行的组件而已。 就我的项目经历来看,大型j2ee的性能问题主要在pojo业务对象的设计和算法,数据库的操作方式,以及web界面处理。而对于简单CMP来说,性能取决于服务器及环境配置;涉及query的CMP,在于sql或EJB QL本身的性能上。

解决方案 »

  1.   

    比如EJB的HOME接口的访问,可以第一次访问后保存到本地的Map中;这样以后访问就可以直接从本地查找了;这些细节对于性能都很有影响
      

  2.   

    比如DB操作,在性能上有什么对应的做法吗?-- 均衡DB服务器和应用服务器的负载。尽量将复杂的数据库操作交由数据库系统来处理,充分发挥数据库的高性能特性,如存储过程,触发器等。对EJB进行合理设计,尽量不要在EJB中包含复杂的数据计算。这是我们之前一个项目的教训。
      

  3.   

    EJB的性能总的来说还是不错的,如果巨大的数据量进行处理时,对系统资源的要求会以几何倍数增长。个人认为是因为自动进行事务管理造成的。