论坛首页 Java企业应用论坛

OpenSessionInView会不会影响性能?

浏览 56194 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-06-04  
davexin 写道
如果是数据传输量比较大,并发比较大的系统,建议先做压力测试,个人不推崇sessionInView的方式。作完压力测试比较一下就知道结果了。
这坟也挖。。。。

无论怎么样的jsp都会被翻译成servlet

而servlet被请求时会成成一个页面静态文件
(本质上就是一个大字串,out.print("大字串内客"))
openinview的数据库连接在生成页面文件后就关闭了。。。
引用
对于那些页面渲染速度很慢,

就是指这个大字串的生成过程时间很长的。。。。




之后传到客户那里的过程用多少秒就不是占用数据库连接了。
。。。。。。。。
0 请登录后投票
   发表时间:2007-06-06  
OpenSessionInView对性能肯定是有一定的影响

既然要在dao中对要render的集合强制初始化。那lazy还有意义吗?

我有一种做法,虽然有点不伦不类,但还是避免了使用OpenSessionInView,也能够在需要时再装载数据,缺点就是在级联更新,删除的时候很不爽

请大家批批

public abstract class AbstractClass{
   private Long id;
   private String name;
   .....
}
public class Class extends AbstractClass{
  private Set<Student> students;
  public Set<Student> getStudents(){
     students = DaoFactory.getStudentDAO().findStudentByClsId(this.id);
     return students;
  }
...
}
public abstract class AbstractStudent{
  private Long id;
  private Long classId;
  ...
}
public class Student extends AbstractStudent{
  private Class cls;
  public Class getClass(){
    cls = DaoFactory.getClassDAO().findById(this.classId)
    return cls;
  }
  public void setClass(Class cls)
  {
     this.cls = cls;
     this.classId = cls.getId();
  }
...
}

0 请登录后投票
   发表时间:2007-06-06  
抛出异常的爱 写道
davexin 写道
如果是数据传输量比较大,并发比较大的系统,建议先做压力测试,个人不推崇sessionInView的方式。作完压力测试比较一下就知道结果了。
这坟也挖。。。。

无论怎么样的jsp都会被翻译成servlet

而servlet被请求时会成成一个页面静态文件
(本质上就是一个大字串,out.print("大字串内客"))
openinview的数据库连接在生成页面文件后就关闭了。。。
引用
对于那些页面渲染速度很慢,

就是指这个大字串的生成过程时间很长的。。。。




之后传到客户那里的过程用多少秒就不是占用数据库连接了。
。。。。。。。。



写个jsp,头上搞个时间,底下搞个时间,计算一下输出,然后在网络比较堵塞的情况下访问一下试试
我以前在tomcat5.5.9下面试的结果确实是跟网络有关,网络慢的,这个时间差值越大
我估计还是跟AppServer相关的
0 请登录后投票
   发表时间:2007-07-03  
2005年提出的问题,现在各位有什么好的解决方案了吗?
0 请登录后投票
   发表时间:2007-07-12  
我目前系统采用OpenSessionInView,导致并发量大的时候经常出现连接池耗尽。打算进行改造,请有经验的各位不吝赐教。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics