性能优化技巧之三个层次

运维 系统运维
性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。本文是性能优化系列文章的第一篇,主要讲解性能优化的三个方面。

编者按:性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。本文是性能优化系列文章的***篇,主要讲解性能优化的三个方面。

性能优化有三个层次:

◇系统层次

◇算法层次

◇代码层次

系统层次关注系统的控制流程和数据流程,优化主要考虑如何减少消息传递的个数;如何使系统的负载更加均衡;如何充分利用硬件的性能和设施;如何减少系统额外开销(比如上下文切换等)。

算法层次关注算法的选择(用更高效的算法替换现有算法,而不改变其接口);现有算法的优化(时间和空间的优化);并发和锁的优化(增加任务的并行性,减小锁的开销);数据结构的设计(比如lock-free的数据结构和算法)。

代码层次关注代码优化,主要是cache相关的优化(I-cache, D-cache相关的优化);代码执行顺序的调整;编译优化选项;语言相关的优化技巧等等。

性能优化需要相关的工具支持,这些工具包括编译器的支持;CPU的支持;以及集成到代码里面的测量工具等等。这些工具主要目的是测量代码的执行时间以及相关的cache miss, cache hit等数据,这些工具可以帮助开发者定位和分析问题。

性能优化和性能设计不同。性能设计贯穿于设计,编码,测试的整个环节,是产品生命周期的***个阶段;而性能优化,通常是在现有系统和代码基础上所做的改进,属于产品生命周期的后续几个阶段(假设产品有多个生命周期)。性能优化不是重新设计,性能优化是以现有的产品和代码为基础的,而不是推倒重来。性能优化的方法和技巧可以指导性能设计,但两者的方法和技巧不能等同。两者关注的对象不同。性能设计是从正向考虑问题:如何设计出高效,高性能的系统;而性能优化是从反向考虑问题:在出现性能问题时,如何定位和优化性能。性能设计考验的是开发者正向建设的能力,而性能优化考验的是开发者反向修复的能力。两者可以互补。

后续会就工具,架构,算法,代码,cache等方面展开讨论这个话题,敬请期待。

原文:性能优化的方法和技巧:概述

【编辑推荐】

  1. 性能优化技巧之代码层次优化
  2. 新的技术产业:Web性能优化
  3. Linux网络性能优化方法简析
  4. 网站性能优化***实践

 

责任编辑:黄丹 来源: 弯曲评论
相关推荐

2011-06-14 14:17:23

性能优化系统层次

2011-06-14 11:14:10

性能优化代码

2020-06-11 09:00:27

SDN网络架构网络

2022-07-21 18:51:13

性能优化

2014-05-22 09:54:22

流量管理Hyper-V网络性能

2014-05-21 13:51:37

Hyper-V网络性能

2011-07-05 09:16:43

项目经理

2021-10-13 06:59:03

Python技巧编程

2017-06-01 22:59:45

Akka层次结构Actors

2009-01-14 10:35:40

商务智能BI报表

2010-09-01 09:08:31

VMwareIT即服务

2013-04-28 10:35:26

2010-07-26 16:35:34

Perl性能

2010-07-26 12:50:45

Perl性能

2022-02-21 14:14:03

SSH加密密钥

2019-09-18 18:32:29

前端javascriptoop

2022-06-22 08:50:53

ERP系统CTO

2022-10-09 13:36:44

接口性能优化

2024-01-22 13:16:00

接口性能优化本地缓存

2010-03-10 10:41:23

Linux管理效率
点赞
收藏

51CTO技术栈公众号