javaWeb程序优化
来源:互联网 发布:办公用品软件 编辑:程序博客网 时间:2024/06/05 19:59
JavaWeb程序优化
一,后台java代码优化:
1. 将String改为StringBuffer;
2. 建立数据库连接池。
3.重定向和转发的优劣:要跳转程序位于自己服务器程序的页面,则转发效率高;位于其他服务器上,则重定向效率高。
4. 删除多余的空行,而//是不规范的注释,尽量将注释换成/**/,可以用在程序的同一行,不要单独占用一行,代码的覆盖率测试要求尽量少的空行和//注释,虽然代码覆盖率测试方法已经过时了。
5. Session对象不需要时不要创建,必要时再创建,不然很消耗资源。
6. 开发完毕,将java程序中的select语句关键字改为大写.
7. jsp页面引入时,尽量使用静态引入,因为静态引入的效率要远远高于动态引入的效率。静态引入时编译时引入,jsp编译成一个servlet,动态引入时运行时映入,jsp将编译成多个servlet
8. 数据库连接优化,注意,这个不是建立DB连接池,而是优化连接DB的java代码,优化方式:通常我们将连接DB的信息放在properties配置文件里,读取properties的java代码可以做优化,不好的方式:通过I/O的方式,new一个Properties来load配置文件里的DB连接信息。优化为好的方式:用静态块statice{}的方式,用ResourceBundle类的getBuddle()静态方法来获取配置文件的DB连接信息,传给全局的ResourceBundle对象,然后再定义一个get方法获取properties的不同值,这种方法只在类加载时实例化一次static{}静态块。代码如下图:
二,前端速率优化:
1. JS优化: 参见csdn我转载的另一篇博客。
2. JS文件压缩:很多js插件都提供两种版本,一种用于开发一种用于产品,有很多js压缩工具可供选择,也有很多在线的。
2. html静态化优化: 页面静态化技术 + 页面缓存技术 (参见:另一篇博客 + 极客学院html5页面缓存课程).
三,DB优化:
1. SQL语句优化:<1>.Select* from emp; *是通配符,性能较低,程序中尽量不要出现*,最好能具体到列名。
<2>.检索结果少and 检索结果多, 检索结果多 and 检索结果少。因为sql语句是顺序执行。
<3>.select* from emp where eno=100 or eno=200 or eno=300; 此语句和select * from emp where eno in (100,200,300); 等价,但是用in的语法清晰+效率高,因为in函数内部做了优化。
<4>. 用like关键字和通配符来检索数据万不得已再用,它的操作慢的不得了。
<5>.SQL不区分大小写,但是script执行的时候会统一转化为大写。 所以:大写执行效率高但不利于阅读,小写脚本执行效率高但不利于阅读,所以一般关键字大写,另外需要注意:建议程序里关键字也大写,有利于增加效率。
2. 范式优化:尽量达到高范式,当然范式越优化,数据量大时冗余越少,查询速度也就越快,价钱也越高。不过这个对数据量大小效果明显,速度不明显,只有数据量非常大时才对速度明显。一般完成3NF即可,完成BCNF时需要增加投入了。
四,框架优化:
1. Strust2标签可以优化,产品上线时,将struts2.xml配置文件中的一些contant标签设置成一下,比如:
<constant name="struts.devMode" value="true"/> <!-- 开发模式,可以打印很多log,上线时设为false -->
<constant name="struts.convention.classes.reload" value="true"/> <!-- 热加载类,类改动时能监听到,开发时以免重启server,上线时设为false -->
五,server优化:
1. 平时开发情况下,tomcat中修改了业务逻辑或页面,不用重启server也能自动加载,只有当web.xml修改时要重启,这是因为:tomcat的web.xml文件中,设置了<Context path=“XXX” docBase=“XXX” reloadable=“true” />,即虚拟路径设置时直接加上了另一条属性reloadable=“true”,这方便我们开发,但是对服务器性能有影响。因为reloadable让server一直处于监视状态,所以当我们项目开发完毕,部署服务器时应该将reloadable设置为false;
2. 采用java高并发缓存框架: 参见我的另一篇博客《高并发优化——java缓存框架》: http://blog.csdn.net/alvinnoending/article/details/42240289
六,搜索排名优化: SEO优化参见我的另一篇博客。
七,总体优化:
1. Yahoo军规:参见我的另一篇博客《Yahoo军规》网站优化方案;
2. DNS prefetch:DNS与解析技术,参见我的另一篇博客。
八,其他优化:代码保护,防止.class反编译处理。参见我的另一篇博客。
备注:欢迎大家多多评论、批评指正,无论和我一样的菜鸟还是大神~~
- javaWeb程序优化
- javaweb项目的优化
- JavaWeb: Tomcat优化
- JavaWeb性能优化
- Javaweb程序服务器部署
- Javaweb程序服务器部署
- Javaweb程序服务器部署
- Javaweb程序服务器部署
- eclipse创建JavaWeb程序
- javaweb登陆程序
- JavaWeb Socket 通信优化设置
- JavaWeb项目优化之MySQL数据库优化
- 第一个javaWeb程序心得体会
- 关于Javaweb 程序的部署
- javaweb struts2 登陆小程序
- JavaWeb程序中的路径问题
- JavaWeb程序获取客户端IP
- Javaweb程序服务器部署_0
- asp.net学习笔记 2014.10.27
- Linux开机启动串口重定向
- 第九周项目六--换分币
- Yogurt factory(2393)
- STM32优先级分组
- javaWeb程序优化
- 【2679】6-1 多态性与虚函数
- rhel7 yum光盘源配置
- Android中利用Handler实现消息的分发机制(一)
- cocos2d-x中使用cocostudio制作的场景或UI
- 第9周项目6还原等式(2)
- TCP协议疑难杂症全景解析
- 【原创】高性能网络编程技术
- U-Boot网络控制台