美国上市公司,专注Java培训21年

开发人员必备技能之一“性能优化”


软件程序的性能问题在设计价段就应该有充分的考虑,根据实际需求制定对应的技术方案和实现方法,比如软件运行后的并发用户数、数据存储量等要求;通常所说的性能优化无非是从并发用户量、吞吐量、安全可靠性这三个方面着手解决。

开发人员必备技能之一“性能优化”

网络配图

至于什么是性能优化这个问题,可能不同环境对它会有不同的理解,今天我们也不再深究这个问题;只要明白开发软件的目的是为用户提供高效快捷的服务,并要有良好的用户体验,保证在用户使用过程不出任何问题;举个生活的例子,我们经常会去银行办理业务,如果银行的系统在使用过程出了问题,那影响会有多大,可以想象到。对开发人员而言首先要从现有的应用和应用服务器获取最大的性能,其次才考虑添加硬件设备的投入。

并发用户量、吞吐量、安全可靠性的具体含义,继续往下看。

一、并发用户量

简单的讲是同一时间,多个用户同时访问应用时,并数据的处理能力;

二、吞吐量

一般应用和应用服务器的吞吐量可以用每秒完成的事务数量来表示,它从一个侧面反映了应用和应用服务器的运行是否正常,体现了服务器的能力。我们的目标是通过应用和应用服务器的最优调整,来提高服务器的吞吐能力;

三、安全可靠性

应用服务器出现故障是不可避免的,最主要的原因是网络延迟或超时,而我们优化的主要工作就是保证用户能及时收到自己请求的信息。

开发人员必备技能之一“性能优化”

网络配图

软件系统优化是一个较复杂的问题,涉及到软件的各个方面:需求、模块划分、数据库设计、程序编码以及一些特殊的优化方法如缓存技术等。

对编码人员来说,最关键的是程序编码,我总结了5条优化性能的编码建议:

1、尽可能重用对象;

“万物皆对象”,如何更好的创建和使用对象,是优化中要考虑的一个重要方面。

2、特别注意循环代码的实现;

循环语句是编写代码的基本语法,可以算的上随处可见。一些小的细节优化能带来性能上的提升,而对循环体的一些改写,能带来性能的大幅提升。

3、如List列表的数据量巨大,则要使用LinkedList实现;

LinkedList内部采用双向链表作为数据结构,比ArrayList占用较多内存空间,且随机访问操作较慢,但插入删除操作很快(仅需进行链表操作,无须大量移动或复制)。

开发人员必备技能之一“性能优化”

网络配图

4、合理使用session存储数据

session为存储数据提供了一种比较好的机制,但使用时要注意两点:(1)、使用完session中的存储对象后,立即主动的session中将其删除并释放;(2)、将存储在session中的对象,改为通过request进行传递;

5、正确使用缓存技术

可以把缓存比喻成“一个储水缸”,它的特点就是把数据或资源保存在访问开销小的地方,一般保存在内存中,它在整个应用生命期都可以被访问,对资源来说,是可以反复使用的,因此缓存的访问开销比直接访问资源开销要小。

先分享这么多了,感谢大家阅读[开发人员必备技能之一“性能优化”]希望对大家有所帮助,更多精彩内容请关注Java培训官网

免责声明:本文有小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • java语言中,char 类型变量是否能保存一个汉字?
    java语言中,char 类型变量是否能保存一个汉字?
    在 Java 语言中,可以使用 char 类型的变量来存储单个的字符,请问是否能用 char 类型的变量来存储一个汉字呢? 详情>>

    2015-10-15

  • 有史以来最牛的一张程序员职业路线图!
    有史以来最牛的一张程序员职业路线图!
    最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图一张,看之豁然开朗。独乐乐不如众乐乐,share了: 详情>>

    2018-05-22

  • java中变量和常量有什么区别?
    java中变量和常量有什么区别?
    在使用 Java 语言进行程序设计时,经常需要用到常量和变量来存储信息。请简单叙述变量和常量有什么区别? 详情>>

    2015-10-15

  • short 和 char 类型的取值范围各是多少?
    short 和 char 类型的取值范围各是多少?
    在使用 Java 语言进行程序设计时,经常需要使用 short 型和 char 型存储数值,请简述short 型和 char 型的取值范围各是多少? 详情>>

    2015-10-15

  • Java开班时间

    收起