1、数据库编程中采用预编译(PreparedStatement)
2、[u][color=red]避免代码里面的循环数据库查询(仔细梳理业务,基本都可以提取到循环外,而且这里往往容易产生瓶颈)[/color][/u]
3、避免代码里面的循环数据库更新处理(插入、更新等),尽量采用批量方式
4、避免生产新的,耗时的对象,即消耗内存,又消耗CPU
比如有业务需求需要数据方法调用轨迹,有人采用new一个Throwable(这个即耗时,又
耗内存,visilvmCPU采样生成该对象及调用要消耗整个调用链4%左右的CPU时间)去实
现,实际上采用Thread.currentThread即可实现,CPU消耗明显下降!
5、使用private、final和static方法,即使代码结构合理,也能运行更有效率
有关private、final和static方法的讨论,请参考:
[url]http://shuhucy.iteye.com/admin/blogs/1752024[/url]
6、[color=red]对数据库、线程和网络资源链接使用资源池技术[/color]
请参考:[url]http://shuhucy.iteye.com/admin/blogs/1709296[/url]
7、[color=red]采用必要的缓存(主要针对不易变化的,非实时性要求的数据,比如字典表,排名等)[/color]
8、采用GZIP等可以加快网络传输,节约网络带宽
9、尽量使用JAVA核心类提供的方法,而不是自己去实现(比如System.arraycopy()等)
10、使用StringBuffer,StringBuilder而不是用String(特别是WEB开发)
11、 对I/O操作使用缓冲
2、[u][color=red]避免代码里面的循环数据库查询(仔细梳理业务,基本都可以提取到循环外,而且这里往往容易产生瓶颈)[/color][/u]
3、避免代码里面的循环数据库更新处理(插入、更新等),尽量采用批量方式
4、避免生产新的,耗时的对象,即消耗内存,又消耗CPU
比如有业务需求需要数据方法调用轨迹,有人采用new一个Throwable(这个即耗时,又
耗内存,visilvmCPU采样生成该对象及调用要消耗整个调用链4%左右的CPU时间)去实
现,实际上采用Thread.currentThread即可实现,CPU消耗明显下降!
5、使用private、final和static方法,即使代码结构合理,也能运行更有效率
有关private、final和static方法的讨论,请参考:
[url]http://shuhucy.iteye.com/admin/blogs/1752024[/url]
6、[color=red]对数据库、线程和网络资源链接使用资源池技术[/color]
请参考:[url]http://shuhucy.iteye.com/admin/blogs/1709296[/url]
7、[color=red]采用必要的缓存(主要针对不易变化的,非实时性要求的数据,比如字典表,排名等)[/color]
8、采用GZIP等可以加快网络传输,节约网络带宽
9、尽量使用JAVA核心类提供的方法,而不是自己去实现(比如System.arraycopy()等)
10、使用StringBuffer,StringBuilder而不是用String(特别是WEB开发)
11、 对I/O操作使用缓冲