高性能-性能评估及工具

简介: 性能问题是架构前想的还是之后想的?评估什么?

带着问题去思考!大家好

性能问题是架构前想的还是之后想的?评估什么?

  在设计阶段时,你需要理解整体架构和约束条件,不然你就回遗漏一些关键点,这将严重制约程序的运行,设计阶段就把性能目标预先考虑进去。当然安全问题也是一样的。一旦项目进入测试,部署和维护阶段,就得把更多的经理投入到微观优化,具体代码方式的分析,减少内存占用等工作。

  我们评估什么呢?评估的东西太多,就拿内存来说,显然需要评估内存占用情况,以便减少内存小号,查看那些类内存呢?专用工作集内存,提交大小,页面缓存池,峰值工作机,.NET堆内存大小,还是大对象堆内存。

平局值还是百分位值


用什么统计值才合适》多数人会优先选用平均值,但是应该考虑一下百分位值。如果对程序的可用性有要求,肯定会用到百分比形式的性能指标。例如:数据库请求的平均延迟必须少于10ms。95%以上的数据库请求延迟必须少于100ms。

(P/100)xN,P为百分位值,N为数据个数。

假定测试由0代垃圾回收导致的暂停服务时间

1,2,2,4,5,5,8,10,10,11,11,11,15,23,24,25,50,87;

18个样本数据。平均值为17ms,95%百分位值远大于50ms。如果只看平均值,你也许不会发现垃圾回收引起的延时问题。你还会发现,中间值(50%百分位值)与平均值的差距相当大,那些占比高的数值,对平均值的影响往往比较大。这样不具备统计学意义,也许只是偶然,可以用一条经验法则来确认所需的样本数,0-99%需要100个,99.9%需要1000个,以此类推,可以从数学角度了解到底需要多少样本数才够用。

评估工具

  “性能监视器”,所属Category和名称,Processor Time计数器属于Process类,它的多个实例分别对应了当前存在的各个处理器。有些性能计数器还带有“元实例”,

  我们先熟悉一下基本的操作系统术语

  •   物理内存---安装在计算机中的物理芯片内存,只有操作系统才能直接管理物理内存。
  •   虚拟内存---属于进程的逻辑内存块。虚拟内存可以大于物理内存。虚拟内存中连续的内存块,在物理内存中不一定是连续的,进程中的所有内存地址都是指虚拟内存。
  •   保留内存---在虚拟内存地址空间中为进程预留的地址段,且永远不会被分配。保留内存无法用于内存分配,因为它根本不存在。只是一段内存地址
  •   已提交内存---物理存在的一段内存,可能位于RAM中,也可能在磁盘上,
  •   内存页---内存单位,每页包含了多个已分配的内存块,单位通常KB
  •   页面交换----在多个虚拟内存区域之间交换内存页的过程,内存页即可能与其他进行交换(软交换),也可能与硬盘交换(硬交换)。软交换的速度可以非常快,只要把内存映射到当前进程的虚拟地址空间即可,硬交换则涉及到速度较慢的硬盘数据交换。你的程序尽量避免触发硬交换。
  •   调入内存页--把内存页从其他地方送入当前进程,
  •   调出内存页--把内存页从当前进程送出至其他地方。比如磁盘
  •   上下文切换---保存和恢复线程或进程状态的过程,因为线程数目通常总是多余可用处理器数,所以往往每秒会发生多次上下文交换
  •   内核模式--该模式下允许操作系统修改底层硬件参数,
  •   用户模式--用于执行普通指令的非特权模式,

Process类计数器可以提供很多重要信息。大家不妨试一试;

PerfView

他是由微软的.NET性能架构师Vance Morrison编写的。

当然还有很多工具,。CLR Profiler,Windbg.MeasureIt。这里不在赘述,大家可以通过其他途径获取了解。这些只不过是一些可视化程序。更重要的是评估,评估在评估

 

相关文章
|
前端开发 容器
给 CSS 盒子模型添加边框时,需要注意什么?
在给CSS盒子模型添加边框时,需要注意边框的宽度、样式和颜色,以及它如何影响盒子的总尺寸和布局。边框会增加盒子的总宽度和高度,可能需要调整其他属性以保持布局的完整性。
|
SQL 安全 Linux
命令执行漏洞
命令执行漏洞
|
编解码 API 数据库
商品详情 API 接口的返回结果通常包含哪些信息?
商品详情API接口返回的信息涵盖多个方面,主要包括商品基本信息(ID、标题、图片、价格、库存、SKU)、详细描述与规格参数、销售与评价信息(销量、好评率、评价内容、促销活动)、物流与售后信息(发货地、运费模板、退换货政策、保修期限)及店铺信息(ID、名称、评分)和关联推荐信息(相似商品、搭配商品)。这些信息有助于用户全面了解商品并做出购买决策。
|
文字识别 API
印刷文字识别操作报错合集之如何解决报错:The image type does not match the API operation.
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
JSON JavaScript 关系型数据库
推荐一款开源的接口测试练手实战项目!
推荐一款开源的接口测试练手实战项目!
1611 0
推荐一款开源的接口测试练手实战项目!
|
Web App开发 IDE 开发工具
selenium 4.0学习(一)环境部署及脚本demo!
selenium 4.0学习(一)环境部署及脚本demo!
selenium 4.0学习(一)环境部署及脚本demo!
EasyX添加图片+鼠标操作
EasyX添加图片+鼠标操作
393 0
|
Web App开发 前端开发 JavaScript
前端基本开发工具的浏览器之Safari
Safari是一款苹果公司开发的浏览器,它在Mac OS和iOS操作系统上广受欢迎。下面就让我们来看看Safari的特点和优势。
701 0
成功解决OSError: [Errno 28] No space left on device
成功解决OSError: [Errno 28] No space left on device
|
存储 JSON 自然语言处理
Elasticsearch——创建/查看/删除索引、创建/查看/修改/删除文档、映射关系
Elasticsearch——创建/查看/删除索引、创建/查看/修改/删除文档、映射关系
3363 0
Elasticsearch——创建/查看/删除索引、创建/查看/修改/删除文档、映射关系