Servlet和JSP 性能调整__教程 |
|
日期:2007-5-20 0:36:57 人气:64 [大 中 小] |
|
|
|
调整方法8:选择正确的范围在使用useBean动作
Jsp页面的一个强大功能就是在jsp中交互使用JavaBeans组件。通过使用动作标签,JavaBeans可以被直接的嵌入jsp页面中。语法如下:
"package.className" type="typeName">
范围属性指定了bean的作用范围。它的默认值是page。你可以根据你的系统要求选择正确的范围。否则它会影响到应用系统的性能。
举例说明,如果你需要一个对象仅仅作为请求使用,但是你的范围设置为session,在你完成请求后,这个对象将依然会留在内存中。直到你明确的清楚它为止,通过销毁session,或者session自动超时。假如你没有选择正确的范围,它同样也会影响性能因为过度的内存和垃圾收集。因此,需要正确的设置对象的范围,同时当你使用完成之后,也应该立即去除它们。
其他方法:
避免字符串相加:使用 + 操作会产生很多临时对象,因为String是不可变化(immutable)的对象。越多的 + 操作,越多的临时对象会被创建,造成很大的系统开销。使用StringBuffer替换 + 操作,当你需要字符串相加的时候。
避免使用System.out.println:System.out.println是同步处理的在disk i/o操作中,并且会严重的影响性能。因此最大可能的要避免使用System.out.println。尽管存在强大的调试工具,有时候为了跟踪目的、错误处理、调试程序,还是使用System.out.println。你应该配置System.out.println仅仅在开发和调试情况下使用。使用一个静态的final boolean变量,在生产模式下,配置成false,避免System.out.println的使用。
ServletOutputStream比较PrintWriter:使用PrintWriter会占用一些系统开销,因为它是为处理字符流的输出输出功能。因此PrintWriter应该使用在确保有字符集转换的环境中。换句话说,在你知道servlet返回的仅仅是二进制数据时候,应该使用ServletOutputStream,这样你可以消除字符转换开销,当servlet容器不用处理字符集转换的时候。
总结
本文的目的是通过一些实践操作,使用性能调整技术,通过提升servlets和jsp页面的性能,进而提升J2EE应用系统的性能。下一次将会涉及性能调整关于EJB (Enterprise JavaBeans), JMS (Java Message Service), and JDBC (Java Database Connectivity)。 |
|
出处:本站原创 作者:佚名 |
|
|