9 个 Java 性能调优技巧,YYDS!
阅读本文大概需要 6 分钟。
来自:dzone.com/articles/11-simple-java-performance-tuning-tips
1. 在明确必要之前别急着优化
2. 使用分析器找到真正的瓶颈
查看你的代码,从看起来可疑的或者你觉得可能会导致出现问题的地方入手。 或者使用分析器获取代码每个部分的行为(执行过程)和性能的详细信息。
3. 为整个应用程序创建一个性能测试套件
4. 优先关注最大瓶颈
5. 使用 StringBuilder 以编程方式连接字符串
for
循环中,则应使用 StringBuilder
。它很易于使用,并提供比 StringBuffer
更好的性能。但请记住,与 StringBuffer
相比, StringBuilder 不是线程安全的,可能并不适用于所有情况。StringBuilder
并调用append
方法来向String
中添加一个新的部分。在你添加完了所有的部分后,你可以调用toString()
方法来检索已连接的字符串。 下面的代码片段展示了一个简单的例子。在每次迭代期间,该循环将 i 转换为一个 String
,并将其与空格一起添加到 StringBuilder sb 中。所以,最后,这段代码在日志文件中写入 “This is a test0 1 2 3 4 5 6 7 8 9” 。StringBuilder sb = new StringBuilder(“This is a test”);for (int i=0; i<10; i++) {
sb.append(i);
sb.append(” “);
}
log.info(sb.toString());
StringBuilder
。这进一步提高了效率,因为它不需要动态扩展其容量。6. 尽可能使用基本类型
7. 尽量避免大整数和小数
8. 使用 Apache Commons StringUtils.Replace 而不是 String.replace
// replace this
test.replace(“test”, “simple test”);
// with this
StringUtils.replace(test, “test”, “simple test”);
9. 昂贵的缓存资源,如数据库连接
总结
在你知道其必要性之前不要进行优化 使用分析器(profiler)来查找真正的瓶 优先处理最大的瓶颈
互联网初中高级大厂面试题(9个G) 内容包含Java基础、JavaWeb、MySQL性能优化、JVM、锁、百万并发、消息队列、高性能缓存、反射、Spring全家桶原理、微服务、Zookeeper......等技术栈!
⬇戳阅读原文领取! 朕已阅
评论