加入收藏 | 设为首页 | 会员中心 | 我要投稿 怀化站长网 (https://www.0745zz.cn/)- 语音技术、云资源管理、物联设备、云计算、决策智能!
当前位置: 首页 > 站长资讯 > 动态 > 正文

一文讲懂什么是函数柯里化

发布时间:2021-02-04 10:15:14 所属栏目:动态 来源:互联网
导读:二、什么是性能优化? 性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力。 ## 关注 不同程序有不同的性能关注点,比如科学计算关注运算速度,比如游戏引擎注重渲染效率,而服务程序追求吞吐能

 二、什么是性能优化?

性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力。

## 关注

不同程序有不同的性能关注点,比如科学计算关注运算速度,比如游戏引擎注重渲染效率,而服务程序追求吞吐能力。

服务器一般都是可水平扩展的分布式系统,系统处理能力取决于单机负载能力和水平扩展能力,所以,提升单机性能和提升水平扩展能力是两个主要方向,理论上系统水平方向可以无限扩展,但水平扩展后往往面临通信成本飙高(甚至瓶颈),单机处理能力下降的问题。

## 指标

衡量单机性能有很多指标,比如:QPS(Query Per Second)、TPS、OPS、IOPS、最大连接数、并发数等评估吞吐的指标。

CPU为了提高吞吐,会把指令执行分为多个阶段,会搞指令Pipeline,同样,软件系统为了提升处理能力,往往会引入批处理(攒包)等,但跟CPU流水线会引起Latency增加一样,伴随着系统负载增加也会导致延迟(Latency)增加,可见,系统吞吐和延迟是两个冲突的目标。

显然,过高的延迟是不能接受的,所以,服务器性能优化的目标往往变成:追求可容忍延迟(Latency)下的最大吞吐(Throughput)。

延迟(也叫响应时间:RT)不是固定的,通常在一个范围内波动,我们可以用平均时延去评估系统性能,但有时候,平均时延是不够的,这很容易理解,比如80%的请求都在10毫秒以内得到响应,但20%的请求时延超过2秒,而这20%的高延迟可能会引发投诉,同样不可接受。

一个改进措施是使用TP90、TP99之类的指标,它不是取平均,而是需确保排序后90%、99%请求满足时延的要求。

通常,执行效率(CPU)是我们的重点关注,但有时候,我们也需要关注内存占用、网络带宽、磁盘IO等,影响性能的因素很多,它是一个复杂的问题。

# 三、基础知识

能编写运行正确的程序不一定能做性能优化,性能优化有更高的要求,这样讲并不是想要吓阻想做性能优化的工程师,而是实事求是讲,性能优化既需要扎实的系统知识,又需要丰富的实践经验,只有这样,你才能具备case by case分析问题解决问题的能力。

所以,相比直接给出结论,我更愿意多花些篇幅讲一些基础知识,我坚持认为底层基础是理解并掌握性能优化技能的前提,值得花费一些时间掌握这些根技术。

## CPU架构

你需要了解CPU架构,理解运算单元、记忆单元、控制单元是如何既各司其职又相互配合完成工作的。

你需要了解CPU如何读取数据,CPU如何执行任务。

你需要了解数据总线,地址总线和控制总线的区别和作用。

你需要了解指令周期:取指、译指、执行、写回。

你需要了解CPU Pipeline,超标量流水线,乱序执行。

你需要了解多CPU、多核心、逻辑核、超线程、多线程、协程这些概念。

## 存储金字塔

CPU的速度和访存速度相差200倍,高速缓存跨越这个鸿沟的桥梁,你需要理解存储金字塔,而这个层次结构思维基于着一个称为局部性原理(principle of locality),它对软硬件系统的设计和性能有着极大的影响。

局部性又分为空间局部性和时间局部性。

### 缓存

现代计算机系统一般有L1-L2-L3三级缓存。

(编辑:怀化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读