如何搞好性能优化

简介: 想必大家都晓得,程序员想要提升,性能优化这块是最重要的一点,实现同样的功能,不同的设计思路能够极大的节省服务器开销,能够更好的提高用户体验,本篇文章我们就来一起探讨一下,性能优化优化的是哪些点。

性能优化的几个指标

  • QPS(每秒响应请求数量)

    QPS的提升,说明程序能够支持更大的并发,支持更多人同时在线

  • 延迟(执行时间)

    低延迟,说明响应速度快

  • 内存的使用率

    内存的飙高,往往涉及到内存溢出能一系列问题,也能看出我们对JVM的管理

  • 磁盘吞吐

    往往能为我们展现出I/O的使用情况

  • CPU

    CPU问题往往涉及到多线程,锁,死循环等等

  • 网络吞吐

    能够描述网络的使用情况

  • ...

性能优化的几大原则

  • 数据至上

    我们在分析定位性能问题,都需要有数据作为支撑,我们可以通过日志,压测等来分析问题,不能凭借感觉,我们应该查看系统监控界面,定位分析瓶颈出在哪里。

  • 禁忌过早优化

    过早的优化不光起不到明显效果,还可能南辕北辙。

  • 禁忌过度优化

    优化经常会是以空间换时间之类的,可能在某个角度被优化了,但站在其它角度又带来了新的问题

  • 不能脱离业务

    程序的最终职责是为了完成业务需求,做好用户体验,不能因为优化去改变需求。

  • 长期坚持

    性能优化是一件长期的事情,面对数据增长,需求堆叠会带来新的新能瓶颈,需要做好持久战的准备。

  • 选择合适的衡量标准

    上一节说道评判性能的一些指标,我们在发现性能问题时要选择合适的衡量指标,优化前后进行对比,也需要检测其它指标,防止优化后带来新的性能问题。

性能优化的时机

  • 需求提出阶段

    在需求分析阶段,要做好思考,分析需求的合理性,找到更好的解决方案

  • 设计阶段

    在做架构设计,技术选型,接口设计,数据库设计的时候,在设计上做好工作,避免出现瓶颈无法优化,需要推到重来。

  • 实现阶段

    编码的时候,使用更优的算法,更适合的设计模式来优化代码。

  • 维护阶段

    随着数据的不断增多,慢SQL逐渐显现出来,还有一些接口速度过慢等等,需要我们去积极解决这些性能问题。

性能优化的方法

  • 借助缓存优化

    因为数据库一直都是应用的最大瓶颈,所以善于使用缓存也是重要的优化手段,这就是最典型的以空间换时间的思想。

  • 使用并行处理优化

    并行处理,也就是我们的多线程处理,将串行的执行,变为并行,能够更好的利用多核cpu的优势。

  • 使用批量处理优化

    使用批量处理往往更能节约资源,提高处理速度,尤其体现在网络IO、磁盘IO.

  • 使用惰性加载优化

    惰性加载,也就是懒加载,在需要使用的时候我们才会去创建实例。

  • 缩小解空间

    即缩小解题空间,就像数据库建立索引,通过索引,让我们不必去大海捞针,能够极大的提高响应速度。

  • 提升代码质量

    更简洁、规范的代码,不但便于维护,更能体现出高性能。

目录
相关文章
|
5月前
|
前端开发
SpringBoot2.3.1集成Knife4j接口文档
SpringBoot2.3.1集成Knife4j接口文档
562 44
|
8月前
|
监控 API 开发工具
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
|
11月前
|
XML Java API
Spring Boot集成MinIO
本文介绍了如何在Spring Boot项目中集成MinIO,一个高性能的分布式对象存储服务。主要步骤包括:引入MinIO依赖、配置MinIO属性、创建MinIO配置类和服务类、使用服务类实现文件上传和下载功能,以及运行应用进行测试。通过这些步骤,可以轻松地在项目中使用MinIO的对象存储功能。
1655 5
|
前端开发 Java
springboot集成knife4j接口文档
springboot集成knife4j接口文档
springboot集成knife4j接口文档
|
存储 消息中间件 JavaScript
规则引擎深度对比,LiteFlow vs Drools! 上
规则引擎深度对比,LiteFlow vs Drools! 上
9hutool实战:FileUtil 文件工具类(读取文件)
9hutool实战:FileUtil 文件工具类(读取文件)
2442 0
9hutool实战:FileUtil 文件工具类(读取文件)
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。