本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9709808
建立时间:2004年12月20日




[java语言]如何改善java servlet程序运行的性能
原创空间,  软件技术

邢红瑞 发表于 2006/2/26 17:56:48

有的朋友问我如何提高java程序的运行效率,其实并不复杂,以下是我的几点经验,做个抛砖引玉,大家别拿砖头打我!1. 避免字符串相加   这是个老生常谈的问题,但是在写servlet的时候,很多人在输出html时,这样写String a = "<html> ";String b = "</html>";String c = a + b;应该使用StringBuffer,String a = "<html> ";String b = "</html>";StringBuffer sb = new StringBuffer(a);sb.append(b);String c = sb.toString();最好使用StringBuffer的带参数构造来代替默认的构造函数,因为StringBuffer的append()方法返回一个StringBuffer实例,最好的写法是这样:StringBuffer sb = new StringBuffer(256);StringBuffer sb = new StringBuffer();sb.append("<html> ").append("</html>");2.不要使用StringTokenizer  例如解析字符串  import java.util.StringTokenizer;public class TestStringTokenizer{public static void main(String[] args){String s = "a,b,c,d";StringTokenizer st = new StringTokenizer(s, ",");while (st.hasMoreTokens()){String token = st.nextToken();System.out.println(token);}}}可以使用String.indexOf()完成相同的功能public class TestIndexOf{public static void main(String[] args){String s = "a,b,c,d";int begin = 0;int end = s.indexOf(",");while (true){String token = null;if (end == -1){token = s.substring(begin);}else{token = s.substring(begin, end);}System.out.println(token);// End if there are no more delimitersif (end == -1) break;begin = end + 1;end = s.indexOf(",", begin);}}}3.一般不要log输出   一般不要使用System.out.println()作为日志输出,最好使用log4j,更易于打开和关闭输出     if(logger.isDebugEnabled()){            logger.debug("logging method handleRequestInternal()....");        }4.避免不必要同步   servlet容器是个多线程的系统,java的关键字synchronized.避免某些情况的程序死锁,但是性能确实大大的降低了。除非特别必要,否则不要使用synchronized。5.尽量使用PreparedStatement多次使用相同的查询语句,PreparedStatement的效率很高,而且避免了sql注入。6.尽量使用连接池使用连接池,可以减少建立连接的时间,而且可以减轻数据库的连接压力。7.大量的使用cache对于经常查询相同数据的网站程序,使用cache是优化的不二法门,oscache是个廉价的方案。8.优化servlet容器  关闭容器的logging,加大他的File read cache size,加大容器的线程数,禁止servlet的重新加载。9.优化jvm,加大heap的初始化字节数,降低虚拟机的垃圾回收频率,


阅读全文(5607) | 回复(1) | 编辑 | 精华
 


回复:如何改善java servlet程序运行的性能
原创空间,  软件技术

CYINFINITE(游客)发表评论于2006/5/30 9:57:15

请问: 1、使用StringTokenizer的缺点是什么? 2、优化jvm,加大heap的初始化字节数,降低虚拟机的垃圾回收频率。能具体说明如何实现吗? 谢谢


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144775875 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号