小文0111 发表于 2019-2-2 11:22:47

让你月薪飙升的秘籍:Java性能调优的9个实用技巧(上)

本帖最后由 小文0111 于 2019-2-2 11:30 编辑

 现实里可能没有完美无缺的代码。如果有,那么,过来,我写一段代码给你看。
  Java已经成为了编程语言的骄子。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,越来越多的企业在数据结构、算法分析、软件开发等研究设计时,都选择以Java语言作为载体。这说明Java语言已经是人们构建软件系统时主要使用的一种语言。如何让Java程序运行是一回事,而如何让它们跑的快又是另外一回事了......  http://dingyue.nosdn.127.net/32rxZHyDja2QFuV0aUkAeA0HzcFPc=Wgk3guywLkgnQR11541409541906.jpeg  下面我整理了一些Java性能调优的一些技巧,在此和大家浅浅的交流一下。  Java性能优化的重要性:  代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。  代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提升的。  代码优化的目标是:  减小代码的体积  提高代码运行的效率  在我们分享基于Java的性能调优技巧之前,让我们先讨论一下这些通用的性能调优技巧。  通用性能调优的4个实用技巧  1. 在必要之前,先不要优化  这可能是最最重要的性能调优技巧之一。你应该遵循常见的最佳实践,并尝试有效地实现你的用例。但这并不意味着在证明它是必要之前,替换任何标准库或构建复杂的优化。  在大多数情况下,过早的优化占用了大量的时间,使得代码难以读取和维护。更糟糕的是,这些优化通常不会带来任何好处,因为你花费了大量时间来优化应用程序的非关键部分。  那么,你如何证明你需要优化某些东西呢?  首先,你需要确定应用程序代码的速度,例如,为所有API调用指定一个最大响应时间,或者指定在特定时间范围内导入的记录数量。完成之后,你可以度量应用程序的哪些部分太慢而需要改进。当这样做之后,那么请继续看第二个调优技巧。  2. 使用分析器来找到真正的瓶颈  在你遵循第一条建议,并确定你的应用程序的某些部分的确需要改进之后,问自己从哪里开始?  你可以用两种方法来解决这个问题:  你可以看一下你的代码,从看起来可疑或者你觉得它可能会产生问题的部分开始。  或者使用分析器,获取代码中每个部分的行为和性能的详细信息。  至于为什么应该总是遵循第二种方法。  答案应该很明显,基于分析器的方法能让你更好地理解代码的性能含义,并允许你关注最关键的部分。如果你曾经使用过分析器,你将会惊讶于代码的哪些部分造成了性能问题。然而,很多时候,你的第一次猜想会把你引向错误的方向。  3. 为整个应用程序创建性能测试套件  这是另一个帮助你避免许多意想不到问题的一般技巧,这些问题通常发生在性能改进部署到生产环境之后。你应该经常定义测试整个应用程序的性能测试套件,并在你完成性能改进之前和之后运行它。  这些额外的测试运行将帮助你识别更改的功能和性能方面的影响,并确保你不会发布一个弊大于利的更新。如果你的任务运行于应用程序的多个不同部分比如数据库或缓存,这一点尤其重要。  4. 首先解决最大的瓶颈问题  在创建了测试套件并使用分析器对应用程序进行分析之后,你就有了一个需要提高性能的问题列表,这很好,但它仍然不能回答你应该从哪里开始的问题。你可以从那些可以快速搞定的开始,亦或者从最重要的问题开始。  当然前者很诱人,因为这很快就能出结果。有时,可能需要说服其他团队成员或你的管理层,性能分析是值得的。  但总的来说,我建议首先着手处理最重要的性能问题。这将为你提供最大的性能改进,而且你可能只需要修复这些问题中的几个就可以解决你的性能需求。  在了解通用性能调优技巧之后,让我们再来仔细看看一些特定于Java的调优技巧。  Java性能调优的5个技巧  1. 使用 StringBuilder  几乎所有Java代码中你都应该考虑这个问题。避免使用+号。你可能会认为StringBuilder只是个语法糖,比如:  String x = "a" + args.length + "b";  会编译成  http://dingyue.nosdn.127.net/Rc9gJqqnjYqOKPelvYIi8L=OiXqu6HR82zrHnW5iWibFt1541409542341.png
页: [1]
查看完整版本: 让你月薪飙升的秘籍:Java性能调优的9个实用技巧(上)