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

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

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

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

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

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

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

目录
相关文章
|
9月前
|
消息中间件 缓存 NoSQL
如何做性能优化?
如何做性能优化?
|
9月前
|
C++ UED
C/C++ 性能优化思路
C/C++ 性能优化思路
123 0
|
9月前
|
缓存 监控 NoSQL
一次性能优化实践
【5月更文挑战第21天】为解决在线教育平台在高并发下数据库查询响应时间增加的问题,开发者采用Redis缓存策略。通过数据分层、LRU淘汰策略、异步更新及监控调优,成功提升性能,缓存命中率超90%,页面加载时间从3秒降至1秒,改善了用户体验。此实践强调了合理缓存策略、监控调优以及考虑数据访问模式在系统设计中的重要性。
87 2
|
9月前
|
缓存 监控 前端开发
前端如何做性能优化?
【4月更文挑战第21天】前端性能优化涉及代码、图片、资源加载、渲染、网络等多个层面,包括压缩合并代码、利用缓存、压缩图片、使用CDN、减少DOM操作、启用HTTP/2等策略。其他方法还包括代码拆分、使用Web Workers和性能监控。优化过程应根据项目实际需求灵活调整,并注意平衡性能与代码可读性。
79 2
|
9月前
|
缓存 Java 测试技术
总结|性能优化思路及常用工具及手段
性能优化是降低成本的手段之一,每年大促前业务平台都会组织核心链路上的应用做性能优化,一方面提升系统性能,另外一方面对腐化的代码进行清理。本文结合业务平台性能优化的经验,探讨一下性能优化的思路及常用工具及手段。
76253 1
|
9月前
|
缓存 小程序 前端开发
小程序 如何做性能优化?
小程序 如何做性能优化?
|
9月前
|
缓存 前端开发 JavaScript
web前端性能优化,这几点让你的代码质量变高
web前端性能优化,这几点让你的代码质量变高
|
监控 网络协议 Java
【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
系统运行缓慢,执行速度较差虽然没有对用户或公司造成实质性的损失,但它从侧面反映出系统在某些方面存在问题。可能需要对系统参数进行优化,或者对系统的设计和交互进行调整,这是后续系统性能优化的一个重要过程。我们将继续努力优化系统,以确保其高效运行和良好性能,以提升用户体验并最大程度地满足业务需求。我们希望通过系统调优的历程,解决当前存在的问题,并不断改进系统的运行,为用户提供更好的服务。
387 0
【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(系统服务调优)
|
缓存 前端开发 JavaScript
前端项目性能优化方案有哪些
前端项目性能优化方案有哪些
197 0
|
Web App开发 存储 缓存
我工作中用到的性能优化全面指南(2)
使用WebGL进行3D渲染 WebGL是一种用于进行3D渲染的Web标准,它提供了底层的图形API,并且能够利用GPU进行加速,非常适合于进行复杂的3D渲染。
121 0