01《性能工程高手课》学习笔记@性能工程概述

发布于 2022年 01月 24日 00:49

程序媛的生活不止是眼前的代码,还有效率和性能优化。

认识代码性能和系统容量效率。

一、代码性能的主要指标

1. 吞吐量

Throughput,单位时间处理请求的数量。

2. 服务延迟

Service latency,客户请求的处理时间。

3. 扩展性

Scalability,系统在高压的情况下能不能正常处理请求。

4. 资源使用效率

Resource Utilization,单位请求处理所需要的资源量,如:CPU、内存等。

5. 可靠性

Reliability,在极端情况下能不能持续处理正常的服务请求,如:天猫双十一等。

性能好的代码,可以用四个字来概括:“多、快、好、省”。

  • 多 》吞吐量大。
  • 快 》服务延迟低。
  • 好 》扩展性好。
  • 省 》资源效率高,资源使用量低。

二、代码性能的重要性

如图所示,代码性能的重要性,不仅仅局限于程序员所直接负责的软件模块,还对其他相关软件模块、模块所在的应用程序、单机系统的设计、互联网服务的质量、公司的运营成本,甚至对我们共同生活的地球都很重要。

单机系统

我们的模块所在的应用程序或微服务,是运行在服务器的硬件和操作系统上的。对这台服务器而言,这就是个单机系统,包括软件和硬件的整个垂直栈:包括操作系统程序库存储系统CPU内存网络等。这些构建都或多或少会影响上层程序的性能。

对下层的软硬件构件越是了解,就越有可能设计出性能优越的模块和应用程序

三、性能优化的知识和技能

互联网服务的复杂性来源于业务种类的多样、服务质量的要求、不同模块的交互、软硬构件的结合、各个团队的合作等。这意味着,服务性能的优化不仅涉及 结构设计代码实现容量部署运维管理效率提升等各个阶段,也需要员工之间和团队之间的紧密合作。如此,想要做好这方面的工作,需要有广泛的知识面、广博的实践经验和较高的软技能

1. 扩展知识面,懂得软硬结合。

  • 软件 操作系统、数据结构和算法、编译原理以及各类协议等计算机方面的知识和数学、统计方面的知识。
  • 硬件 服务器本身(CPU、内存等)、存储系统、各类网络、数据中心等。
  • 实践经验 观察系统资源使用率的各种系统命令,各种调试和测试工具,以及如何进行性能分析、优化的实践。
  • 软技能 团队协作能力、分享汇报能力。

2. 理论联系实际。

不明显原因导致的性能问题,需要对各种协议软件操作系统硬件网络非常熟悉。

3. 测试、分析、优化,有迹可循。

性能测试是一切性能工作的基础和开端。

分析和研究性能测试得到的数据,发现问题并找到问题的根本原因,然后进行性能优化来解决问题。

性能工程师分析问题并且优化性能的总体思路问题 → 测试 → 分析 → 优化 → 实践

推荐文章