对你的系统做过哪些性能优化?

简介: 列举项目实践过程中对系统做过的性能优化

记得有个伟人说过一句话,不要对你的程序做过早的优化,这句话个人执行的不错,没事的时候谁去针对代码做一些优化,尤其是在没有突出问题的时候。那啥时候需要做性能优化呢,有三个时间,一个是自己调试或者测试代码实在太慢的时候,一个是压力测试暴露出来的时候,一个就是线上暴露的响应慢的时候。

首先第一个时间,举一个实际的例子,我们通常会对数据库表中的数据做一些统计分析,并把分析的结果写入另一张表里中。由于多表关联,数据量巨大,代码逻辑中还嵌套了很多的for,导致一个统计跑了很久很久。这个时候是自己都看不下去了,必须优化提高性能。曾经从以下几个方便入手过:数据库索引,表关联查询简化语句,跟dba学习修改成高效的sql,代码逻辑中for循环里面尽量避免有数据库方便的操作(这点曾经犯过不少,因为毕竟这么些符合人类思维,先要做出正确的结果,但是缺忽略了性能,近期从一开始就不会这么干了),批量操作(主要是数据库批量插入,那比for循环里一条条的insert效率高多了)等等。

第二个压力测试阶段,主要是测并发了,针对接口做的测试,主要体现在并发数量太少了。做过的优化有JVM性能优化,Nginx提高性能的几个配置调整,代码数据结构的优化,缓存的使用,应用配置等。JVM的调整本身做的比较少,一般就是内存和线程配置,还没涉及到GC的配置修改。Nginx的配置就是work_connections,长连接,负载配置等,当然有时候需要调整Linux内核的几个参数或者Windows注册表中的几个参数。代码数据结构类似于第一阶段的措施。缓存这块就是数据从数据库查询搬到redis缓存中去读取。应用配置方面就是tomcat的线程数,连接数等。

第三阶段就是线上爆雷被客户怼的时候,有人会问有问题还会到线上吗?唉,怎么说的,就是线上出的问题多,哪怕是一样的配置。很多东西是测试不出来的,可能一样逻辑的代码线上有可能出bugs。这个阶段采取的措施就是重复第一第二阶段中采取的措施反复试错,最后让系统稳定,让客户不在提除了业务(非互联网行业)以外的问题。

总结一下,早期应用的部署都是在物理机上,自己手装服务器的操作系统,甚至还是32位的,可以说各种问题都会出来,不光性能问题,有的时候程序跑着跑着系统文件缺失了,而且还缺少运维监管,反正问题不少。现在大多数系统都是64位的,而且都是云上的,有很完善的系统监管保障,各项性能指标一目了然,偶然出的问题都是代码问题,配置问题也少了。

目录
相关文章
|
8月前
|
消息中间件 缓存 NoSQL
如何做性能优化?
如何做性能优化?
|
6月前
|
缓存 前端开发 JavaScript
前端常见的性能优化方案?
【7月更文挑战第14天】前端性能优化包括代码压缩、资源合并、图片优化、缓存策略和DOM操作改进。例如,压缩CSS、JS,懒加载图片,使用CDN,事件委托,启用HTTP/2,及利用性能工具进行评估和优化。目标是加快加载速度,提升用户体验和服务器效率。
82 2
|
8月前
|
缓存 移动开发 Android开发
Android应用性能优化实践
【5月更文挑战第20天】 在移动开发领域,应用的性能直接关乎用户体验。特别是对于Android平台,由于设备多样性和应用生态环境的复杂性,性能优化成为了开发者必须面对的挑战。本文将深入探讨Android应用性能优化的多个方面,包括内存管理、UI渲染、多线程处理以及电池效率等,旨在为开发者提供一系列实用的优化策略和技巧。
|
8月前
|
缓存 监控 前端开发
前端如何做性能优化?
【4月更文挑战第21天】前端性能优化涉及代码、图片、资源加载、渲染、网络等多个层面,包括压缩合并代码、利用缓存、压缩图片、使用CDN、减少DOM操作、启用HTTP/2等策略。其他方法还包括代码拆分、使用Web Workers和性能监控。优化过程应根据项目实际需求灵活调整,并注意平衡性能与代码可读性。
68 2
|
8月前
|
缓存 Java Android开发
Android应用性能优化实战
【5月更文挑战第14天】 在竞争激烈的应用市场中,一个流畅、高效的应用能显著提升用户体验并增强用户黏性。本文深入探讨了针对安卓平台进行应用性能优化的策略与实践,从内存管理到多线程处理,再到布局渲染和网络请求的优化,旨在为开发者提供一套全面的优化工具箱。通过分析常见的性能瓶颈并结合最新的Android技术动态,我们不仅讨论理论,还将分享具体的代码示例和改进方法,帮助开发者在实际应用中实现性能提升。
|
8月前
|
缓存 小程序 前端开发
小程序 如何做性能优化?
小程序 如何做性能优化?
|
8月前
|
缓存 前端开发 JavaScript
web前端性能优化,这几点让你的代码质量变高
web前端性能优化,这几点让你的代码质量变高
|
监控 网络协议 Java
【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
系统运行缓慢,执行速度较差虽然没有对用户或公司造成实质性的损失,但它从侧面反映出系统在某些方面存在问题。可能需要对系统参数进行优化,或者对系统的设计和交互进行调整,这是后续系统性能优化的一个重要过程。我们将继续努力优化系统,以确保其高效运行和良好性能,以提升用户体验并最大程度地满足业务需求。我们希望通过系统调优的历程,解决当前存在的问题,并不断改进系统的运行,为用户提供更好的服务。
373 0
【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
|
缓存 前端开发 JavaScript
前端项目性能优化方案有哪些
前端项目性能优化方案有哪些
190 0
|
存储 缓存 JavaScript
我工作中用到的性能优化全面指南(1)
在Web开发中,Web的性能优化是一个重要的话题。无论是页面加载速度,用户体验,或者是程序运行效率,都与Web的性能优化息息相关。 最小化和压缩代码 在构建过程中,为了减少文件的大小和加载时间,通常会对JavaScript代码进行最小化和压缩处理。这包括移除不必要的空格、换行、注释,以及缩短变量和函数名。工具如UglifyJS和Terser等可以帮助我们完成这个任务。
71 0