下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → Servlet和JSP 性能调整__教程
Servlet和JSP 性能调整__教程
日期:2007-5-20 0:36:57 人气:64     [ ]
上一页 [1] [2] [3] 下一页
  <%@ page session="false"%> 

  不要存储大型对象到HttpSession:如果你存储大型对象数据到HttpSession中,应用服务器不得不在每一次请求中处理整个的HttpSession,这将会强迫使用java的串行化操作,占用大量系统资源。应用服务的性能将会因为java的串行化操作而减少。 

  在结束时候释放HttpSessions对象:在它们不在需要的时候使用HttpSession.invalidate()方法消除sessions。 

  设置session的超时值:servlet有一个默认的超时值。如果你在这个时间里面,你既没有移除它,也没有使用它(进行任何服务请求),servlet服务将会自动将其销毁。因为对内存和垃圾的回收处理,因此,超时值越大,对服务器的性能影响越大。所以,尽可能的保持session的超时值最小。 

  调整方法4:使用gzip压缩 

  压缩是一个去处庸余信息的操作,以便可以使用最小的空间存储。使用gzip(GNU zip)压缩内容可以显著的减少下载HTML文件的时间。信息内容越小,传送的速度越快。因此,如果在生成web应用的时候压缩内容,就可以更快的传送、显示在用户的屏幕上面。由于不是每一个浏览器都支持gzip压缩功能,所以你必须简单的检查浏览器是否支持。 
  
  下面代码是演示如何发送压缩内容的例子: 

public void doGet(HttpServletRequest request, HttpServletResponse response) 

   throws IOException, ServletException 



OutputStream out = null 

// Check the Accepting-Encoding header from the HTTP request. 

// If the header includes gzip, choose GZIP. 

// If the header includes compress, choose ZIP. 

// Otherwise choose no compression. 

String encoding = request.getHeader("Accept-Encoding"); 

if (encoding != null && encoding.indexOf("gzip") != -1) 



  response.setHeader("Content-Encoding" , "gzip"); 

  out = new GZIPOutputStream(response.getOutputStream()); 



else if (encoding != null && encoding.indexOf("compress") != -1) 



  response.setHeader("Content-Encoding" , "compress"); 

  out = new ZIPOutputStream(response.getOutputStream()); 



else 



  out = response.getOutputStream(); 



... 

...       



调整方法5:不要使用SingleThreadModel 

  SingleThreadModel接口确保servlet在同一时间只接受一个请求。如果servlet实现这个接口,servlet将会为每一个新的请求创建隔离的servelet实例,这将造成很大的系统开销。如果你需要处理线程安全问题,可以使用其他方法代替这种方法。在servlet2.4中SingleThreadModel接口已经被反对使用。 

调整方法6:使用线程池 

  Servlet引擎为每一个请求创建一个隔离的线程,分配这个线程给service()方法,在它执行完后移除这个线程。默认情况下,servlet引擎为每一个请求创建新的线程。因为创建和消除线程是需要系统开销的,这种行为将会引起性能问题。可以通过使用线程池来提升性能。依据所期望的并发用户数量,配置线程池的最大、最小、以及增加数量。在服务启动的时候,servlet引擎使用最小的线程数量创建一个线程池。然后servlet引擎会分配线程给每一个请求,替换原来的创建新的线程,在处理完成后把线程返回给线程池。使用线程池,性能会有一个显著的提升。如果需要,根据线程的最大和增加数量,更多的线程会被创建,添加到池中以供更多的请求使用。 





  调整方法7:选择正确的包含机制 

  在jsp中有两种方法使用包含文件:包含指令(<%@ include file="test.jsp" %>) 和包含动作 ()。包含指令在转换的过程中包含文件内容;也就是说,在一个页面转换成一个servlet的时候。包含动作在请求处理的阶段包含文件内容;也就是说,在一个用户请求页面的时候。包含指令快于包含动作。因此,除非被包含的内容经常变化,应该使用包含指令提升性能。 
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.