前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发人员必备技能之一“性能优化”

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

作者头像
用户1289394
发布2018-02-28 15:54:04
8080
发布2018-02-28 15:54:04
举报
文章被收录于专栏:Java学习网Java学习网

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

网络配图 至于什么是性能优化这个问题,可能不同环境对它会有不同的理解,今天我们也不再深究这个问题;只要明白开发软件的目的是为用户提供高效快捷的服务,并要有良好的用户体验,保证在用户使用过程不出任何问题;举个生活的例子,我们经常会去银行办理业务,如果银行的系统在使用过程出了问题,那影响会有多大,可以想象到。对开发人员而言首先要从现有的应用和应用服务器获取最大的性能,其次才考虑添加硬件设备的投入。 并发用户量、吞吐量、安全可靠性的具体含义,继续往下看。 一、并发用户量 简单的讲是同一时间,多个用户同时访问应用时,并数据的处理能力; 二、吞吐量 一般应用和应用服务器的吞吐量可以用每秒完成的事务数量来表示,它从一个侧面反映了应用和应用服务器的运行是否正常,体现了服务器的能力。我们的目标是通过应用和应用服务器的最优调整,来提高服务器的吞吐能力; 三、安全可靠性 应用服务器出现故障是不可避免的,最主要的原因是网络延迟或超时,而我们优化的主要工作就是保证用户能及时收到自己请求的信息。

网络配图 软件系统优化是一个较复杂的问题,涉及到软件的各个方面:需求、模块划分、数据库设计、程序编码以及一些特殊的优化方法如缓存技术等。 对编码人员来说,最关键的是程序编码,我总结了5条优化性能的编码建议: 1、尽可能重用对象; “万物皆对象”,如何更好的创建和使用对象,是优化中要考虑的一个重要方面。 2、特别注意循环代码的实现; 循环语句是编写代码的基本语法,可以算的上随处可见。一些小的细节优化能带来性能上的提升,而对循环体的一些改写,能带来性能的大幅提升。 3、如List列表的数据量巨大,则要使用LinkedList实现; LinkedList内部采用双向链表作为数据结构,比ArrayList占用较多内存空间,且随机访问操作较慢,但插入删除操作很快(仅需进行链表操作,无须大量移动或复制)。

网络配图 4、合理使用session存储数据 session为存储数据提供了一种比较好的机制,但使用时要注意两点:(1)、使用完session中的存储对象后,立即主动的session中将其删除并释放;(2)、将存储在session中的对象,改为通过request进行传递; 5、正确使用缓存技术 可以把缓存比喻成“一个储水缸”,它的特点就是把数据或资源保存在访问开销小的地方,一般保存在内存中,它在整个应用生命期都可以被访问,对资源来说,是可以反复使用的,因此缓存的访问开销比直接访问资源开销要小。 先这么多了,欢迎补充!!!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java学习网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档