那你知道在做软件优化时要注意什么吗

来源: 云巴巴 2022-11-21 14:09:19

 

    我们的工作和生活每天都离不开软件,所以,我们更要了解一些关于软件优化的知识。

    在做软件优化时,尽量采用懒加载的策略,即在需要的时候才创建,慎用异常,异常对性能不利。抛出异常首先要创建一个新的对象,Throwable接口的构造函数调用名为fillInStackTrace的本地同步方法,fillInStackTrace方法检查堆栈。收集调用跟踪信息,只要有异常被抛出,Java虚拟机就必须调整调用堆栈。因为在处理过程中创建了一个新的对象。异常只能用于错误处理,不应该用来控制程序流程。

    不要在循环中使用trycatch…,应该把其放在最外层,根据网友们提出的意见,这一点我认为值得商榷。如果能估计到待添加的内容长度,为底层以数组方式实现的集合、工具类指定初始长度。

    可以通过类(这里指的不仅仅是上面的StringBuilder)的构造函数来设定它的初始化容量,这样可以明显地提升性能,比如StringBuilder吧,length表示当前的StringBuilder能保持的字符数量。因为当StringBuilder达到最大容量的时候,它会将自身容量增加到当前的2倍再加2,无论何时只要StringBuilder达到它的最大容量。它就不得不创建一个新的字符数组然后将旧的字符数组内容拷贝到新字符数组中----这是十分耗费性能的一个操作。试想,如果能预估到字符数组中大概要存放5000个字符而不指定长度,最接近50002次幂是4096,每次扩容加的2不管。

    在4096 的基础上,再申请8194个大小的字符数组,加起来相当于一次申请了12290个大小的字符数组。如果一开始能指定5000个大小的字符数组,就节省了一倍以上的空间,把原来的4096个字符拷贝到新的的字符数组中去。

    这样,既浪费内存空间又降低代码运行效率,所以,给底层以数组实现的集合、工具类设置一个合理的初始化容量是错不了的,这会带来立竿见影的效果。但是,注意,像HashMap这种是以数组+链表实现的集合。别把初始大小和你估计的大小设置得一样,因为一个table上只连接一个对象的可能性几乎为0,初始大小建议设置为2N次幂,如果能估计到有2000个元素,设置成new HashMap128)、new HashMap256)都可以。

    以上,就是关于软件优化时所需要关注的要点,你都清楚了吗?

 

 

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

评论列表

为你推荐

企微管家会话内容存档跟客户资料丢失说不

企微管家会话内容存档跟客户资料丢失说不

企微管家作为一款获客神器,对于会话内容的存档功能非常的看重,复盘销售和客户沟通的话术是否存在问题,后期对客户的需求进行整理分析,都需要翻出和客户的聊天记录去仔细研究,符合的场景也是多种多样的,基于企业微信API合规化存档企业内部外部微信聊天内容,用于合规审

2022-11-23 10:02:06

爆款推荐!斑马ZD888桌面标签打印机,标签打印选它准没错!

爆款推荐!斑马ZD888桌面标签打印机,标签打印选它准没错!

  标签打印机在现代人们的办公生活中越来越常见,无论是企业的资产管理、餐饮店铺或者是仓储系统,标签打印都是刚需。但是平日里,我们见到更多的是便携式的标签打印机,这样的产品应对小规模的打印还绰绰有余,但是像是仓储系统所需要的大批量标签打印,怕是就招架不住了。这时候,我们就需要一台工业级标签打印机了,斑马ZD888便是我们的选择之一。

2022-03-04 16:45:51

合思·易快报签约四川路易投资,以财务数字化驱动降本增效

合思·易快报签约四川路易投资,以财务数字化驱动降本增效

合思·易快报近日签约四川路易投资管理有限公司,助力其实现更加高效、规范的的财务数字化管理,推动财务费控及报销的智能化进程,实现降本增效目标,为其在业务领域的高效扩增赋能。

2022-07-26 14:25:56

驱动公司内部采购数字化升级,2022年SRM采购管理系统大合集!

驱动公司内部采购数字化升级,2022年SRM采购管理系统大合集!

SRM可以促进构成可靠有韧性的供应链体系,让交付更快、效率更高、质量更可靠、响应更敏捷,企业的核心竞争力就是从这些地方一点一滴累积。小巴总结了2022年最新的SRM采购管理系统产品,如何选择可以咨询我们!

2023-01-03 17:43:24

听说你你想了解什么是“裸金属服务器”(一)

听说你你想了解什么是“裸金属服务器”(一)

相信大家对“服务器”这个词都不陌生了,但是朋友们,你知道什么是“裸金属服务器”吗? 其实刚开始,小编也没有很多的接触过这个词,但是不知道为什么,很多人对这个东东产生了浓厚的兴趣。毕竟人生就是在不断地学习中进步的,所以本着消灭所有知识死角的精神,今天就来科

2022-11-22 17:26:13

数据库每周国际新闻 2020-3-13

数据库每周国际新闻 2020-3-13

Chartio展示了他们为构建SQL查询而创建的一个新接口visualsql。它并不能真正帮助您对数据建模,但让SQL在本质上更“可视化”是有趣的。值得注意的是,本文由TiDB的创建者PingCAP所著,但除此之外,本文还介绍了由亚洲大型电子商务平台

2020-03-17 17:32:40

严选云产品

元经纪OS-AIGC新一代智脑操作系统 元经纪OS-AIGC新一代智脑操作系统AIGC通过自动化和智能化的技术,能够大大提高企业的生产效率,从而降低成本,提高利润。据统计,使用AIGC的企业生产效率可以提高30%以上。OS-AIGC目前在短视频创作,小说推文,产品营销等领域都表现出不俗的生产力。好的AIGC产品并不是调用 接口直接接入草草了事。当下时代好的AIGC产品应该是贴合我们的工作实际需求,好的大模型需要有好的应用场景。同时该产品支持SAAS部署及独立部署。根据企业进行1v1的数据模型训练,真正的效率提升工具。
美团餐饮系统 美团餐饮系统全面对接外卖平台,自动接单减少丢单和漏单,自动分发订单并打印,降低员工工作量,提升出餐速度。统一外卖菜品库存管理,实时监测各渠道销量,备货补货更精准。 统一外卖报表,降低财务人员工作量,财务准确性更高。
百度智能云内容安全系统 百度可提供全类型的内容识别与机器审核服务,供客户进行业务逻辑处理,确保内容安全。基于强大的AI能力与长期的实践与积累,百度具备了全体系的风险类型识别能力,全方位进行风险覆盖。通过抽帧、信息提取等方式,对视频内容进行图像、音频、文本等多维度立体识别。
云客连锁门店工作手机解决方案 云客连锁门店工作手机解决方案微信营销素材总部统一管理、统一下发,门店统一执行。赋能微信朋友圈文章营销,意向客户及时跟进。多维度多类型自定义微信优质话术,智能推荐沟通话术。微信多种方式拓展精准客户,自动批量添加好友。
麦伽智能问答助手 麦伽智能问答助手,无需准备知识库,只需上传相关文档,基于文档的内容问答。利用麦伽调优的大语言模型,对文档进行精准理解,进一步保证问答系统的准确性和效率。 支持向企业微信、钉钉、客服坐席等不同系统集成。支持企业内私有化部署,保障信息安全。
长亭科技 区块链生态安全服务解决方案 长亭科技区块链生态安全服务解决方案,覆盖多种区块链生态角色与技术实现方式,以期更精准、便捷地为不同厂商的各种类型产品提供专业化定制化安全服务。

甄选10000+数字化产品 为您免费使用

申请试用