最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

重学c#系列——什么是性能[外篇性能篇一]

来源:博客园

前言

简单写一下性能的简介。


(资料图片)

正文

什么是性能,很多时候有一个问题,那就很多人喜欢说。这个服务有很多访问,我们需要这样设计。

这是一个无法验证的指标,访问次数是多少? 响应时间是多少。

我把这归纳为自我臆想。

那么这个时候就有一些指标。

比如说这个接口,大概有500并发,响应时间需要在300ms内。

这是一些指标。因为这个时候已经大体知道了,并发量。

那么如果不知道的情况下呢,是不是也有一些指标呢?

是的,也有一些典型应用程序的性能目标示例:

系统类型性能目标环境约束
外部服务器从请求到回复生成完毕不得超过300ms不超过300个并发活跃请求
外部web服务器虚拟内存占用不得超过1.3GB不超过300个并发活跃请求且不超过500个在线会话
应用服务器cpu 使用率不得超过75%不超过1000个并发活跃api请求
应用服务器硬页面失效不能超过每秒2次不超过1000个并发获取请求api
监控服务从失败事件开始,到报警生成并发送出去,之间不得超过25ms-
监控服务当没有报警生成的时候,磁盘io操作率应该是0-

上面这些是一些经典的目标,但是不能忽视一点,那就是硬件环境。在什么样的硬件环境中测试上面标准才是有效的呢?

有了性能目标其实还有一个性能指标的东西,什么是性能指标呢?

性能指标不同于性能目标,它与具体场景和环境并不相关。

一项性能指标是一个用于体现应用程序行为的可测量的量化数值。

你可以在任意硬件及环境下测量一项性能指标,而不必关心此时有多少活跃用户、请求或会话。

在开发周期中,你可以以具体的性能目标总结出各项指标,并选择性的进行测量。

一般来说,客户端关注的是:启动时间、内存占用及cpu占用率。

对承担系统算法的服务器端应用程序来说,一般是cpu占用率、缓存实现、竞争内存分配和垃圾回收。

对web应用程序来说,一般会测量其内存使用量、数据库访问、网络,磁盘操作和响应时间。

  1. 在需求收集阶段,开始思考该设置怎样的性能目标
  2. 在架构设计开发阶段,提炼出各项重要的性能指标,并定义具体的性能目标。
  3. 在软件开发阶段,对原型代码或局部实现的功能进行比较繁琐的探索式性能测试,确保满足系统的性能目标。
  4. 在产品测试阶段,进行大量的负载均衡测试和性能测试,用于检测是否完全满足系统的性能目标。

开发维护阶段,按照所需,进行调整优化。

性能指标测量单位
CPU使用率百分比
物理/虚拟内存占用字节(B/KB/MB/GB)
缓存失效次,次/秒
页面失效次,次/秒
数据库访问次数及耗时次,次/秒,毫秒(ms)
执行事件毫秒(ms)
网络操作次,次/秒
磁盘操作次,次/秒
响应时间毫秒(ms)
垃圾回收次,次/秒,耗时(毫秒),占总时间百分比
抛出异常次,次/秒
启动时间毫秒(ms)
竞争次,次/秒

下一节cpu和内存的分析方法,和具体的工具。

关键词: 性能指标 应用程序 响应时间