java代码性能优化二

正确使用递归

递归算法可以清晰表达复杂的算法,提高代码的可读性。但是递归性能通常比迭代低 的多。

IBM 现场测试就发现 BusinessClassDALC. internalSelectAncestorsOfClass 的递归性能比较差,后改成循环迭代后性能提升明显。

也并不是所有的递归性能都高于迭代,需要依据实际情况确定。

正确使用字符串连接操作

如果需要由多个动态字符串拼装一个复杂的字符串,最好使用 StringBuffer 而不是“ + ”。 StringBuffer 的内部缓存区是可变的,每次 append 需用创建新的缓存区。而字符串的“ + ”操作会创建临时变量做合并,之后再回收。

字符串连接操作 分成编译时和运行时,编译时“ + ”操作性能最高;运行时尽量使用 StringBuffer

正确使用日志

借鉴主流的 log4j 日志系统,平台的日志服务可以至少有以下可以改进的地方:

1.       异步日志。创建独立的 Thread 写日志文件可以提高服务响应的速度,类似生产者 - 消费者模型。

2.       日志级别输出。平台日志服务对日志划分了多个级别,这一点和 log4j 类似,但是没实现对级别的输出控制。 log4j 通过配置控制高于指定级别的日志输出,低级的日志不输出。这样做的好处是在程序中可以添加一些低级别的日志,用于调试,一般是 DEBUG ;正常运行时只输出 WARNERRORFATAL 级别。

正确使用 SQL

尽量使用 PrepareStatement 而不是 Statement ,以重用 SQL

尽量使用批量 SQL

更多信息请查看 java进阶网 http://www.javady.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值