一般项目常用性能调优方法(二)

功能优化

从功能设计上,避免一次性加载大量数据。遇到一次性加载大量数据的,通过以下问题寻找功能优化方式:

1.       设置默认查询条件,仅加载部分数据。如对于监测数据的查询分析,可默认仅查询当天或当月的数据;

2.       将数据展示使用类似TAB的元素分开,根据用户操作,采用AJAX分步加载数据

3.       实时性要求不高的数据,不要实时查询,可缓存或者放到Session

代码调优

SQL优化

1.       尽量使用join,不要使用子查询

2.       可能的情况下,尽量使用UNION ALL来代替UNION

小窍门:
可使用PL/SQL 或者 SQLServer Management Studio查看SQL的执行计划,进而对SQL进行优化。

缓存的使用

关于EhCache、Redis的使用,请自行百度。 

耗时操作的处理

需求:对某事项进行审批,审批通过后发邮件给提交人。 
发邮件即为一个耗时操作,如果审批通过后,在当前线程中执行发邮件的操作,则会阻塞当前线程,直到邮件发送结束。 

经验分享:

耗时操作可以启动一个新的线程执行,避免阻塞当前线程(request)

或者将耗时操作仅仅设置一个未执行的状态,后台跑一个QZ任务,定时批量执行。

代码逻辑调优

1.       避免for 多层嵌套

2.       避免对大数组的迭代对比,考虑使用Arrays.binarySearch()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章