当前位置: 首页 > 编程日记 > 正文

CPU性能指标

1,主频

主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;

时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍;

2,时钟周期

时钟周期 t =1/ f; 主频的倒数

3,机器周期

机器周期A  = m*t ;一个机器周期包含若干个时钟周期

4,指令周期

指令周期B = m*t*n; 执行一条指令所需要的时间,一般包含若干个机器周期

5,CPI

CPI = m*n;  平均每条指令的平均时钟周期个数

指令周期B = CPI×机器周期 = n(CPI=n)×m×时钟周期=nm/主频f, 注意指令周期单位是s或者ns,CPI无量纲

参考:https://en.wikipedia.org/wiki/Cycles_per_instruction

6,MIPS(MillionInstructions Per Second)

MIPS = 每秒执行百万条指令数 = 1/(CPI×时钟周期)= 主频/CPI

MFLOPS 每秒百万浮点运算次数。

表示秒钟所能执行的指令条数,对于微型计算机可用CPU的主频和每条指令的执行所需的时钟周期来衡量。

包含关系:指令周期通常用若干个机器周期来表示,在机器语言中,使用执行一条指令所需要的机器周期数来说明指令执行的速度。而机器周期又包含若干个时钟周期。时钟周期是最基本的操作单位。

参考: https://en.wikipedia.org/wiki/Instructions_per_second

注意:计算机的运算速度一般用每秒钟所能执行的指令条数来表示。由于不同类型的指令所需时间长度不同,因而运算速度的计算方法也不同。例如,根据不同类型的指令出现的频度,乘上不同的系数求得统计平均值,得到平均运算速度。这种方法用MIPS(Millions of Instruction Per Second)作单位,即每秒百万条指令。

又如,直接给出CPU的主频和每条指令的执行所需的时钟周期。周期一般以MHz为单位。主频即计算机的时钟频率,它在很大程度上决定了主机的工作速度。例如,型号为486DX-133的微型计算机,表明它的CPU型号为486,DX为含浮点处理器,数字133的含义是主频为133MHz。

题: 若某处理器的时钟频率为500MHz,每4个时钟周期组成一个机器周期,执行一条指令需要3个机器周期,则该处理器的一个机器周期▁8▁ns,平均执行速度为▁42▁MIPS

解析如下:

时钟周期T等于主频的倒数,即T=1/500MHz=1/(0.5×10的9次方Hz)=2 ns,机器周期等于4个时钟周期即=4T=4×2 ns=8 ns,每条指令的时钟周期数CPI=3×4=12,则平均速度为:f/(CPI×10的6次方)=(500×10的6次方)/(12×10的6次 方)=500/12=41.6≈42MIPS.计算主频的倒数时要注意把主频的MHz换算成Hz即500后面加6个0=500×10的6次方=0.5×10的9次方,1/10的9次方 Hz=1ns

每条指令的时钟周期数CPI=3×4=12,执行一条指令需要3个机器周期数,一个机器周期包含4个时钟周期,所以CPI=3×4=12,这里计算 的都是周期的个数,和具体的时间ns纳秒没有关系,若带上具体的时间,一个时钟周期T=2ns,一个机器周期就是2×4=8ns,执行一条指令需要三个机 器周期得出执行一条指令需要的具体时间为3×8=24ns,执行每条指令的需要的时钟周期数CPI换句话说就是把执行每条指令需要的时间24ns换算成时 钟周期个数表示,为多少个时钟周期个数?时钟周期是最基本的时间操作单位,500MHz主频的处理器一个时钟周期为2ns,24ns等于多少个时钟周期?24/2=12个时钟周期,即那一句:“每条指令的时钟周期数CPI=12”。

CPI,IPC的关系及性能相关描述

每指令周期数(CPI)是一个很重要的高级指标,用来描述CPU如何使用他的时钟周期,同时也可以用来理解CPU使用率的本质。这个指标也可以被表示未每周期指令书(instructions per cycle,IPC),即CPI的倒数。

CPI较高代表CPU经常陷入停滞,通常都是在访问内存。而较低的CPI代表CPU基本没有停滞,指令吞吐量较高。这些指标指明了性能调优的主要工作方向。

内存访问密集的负载,可以通过下面的方法提高性能,如使用更快的内存(DRAM)、提高内存本地性(软件配置),或者减少内存I/O数量。使用更高时钟频率的CPU并不能达到预期的性能目标,因为CPU还是需要为等待内存I/O完成而花费同样的时间。换句话说,更快的CPU意味着更多的停滞周期,而指令完成速率不变。

CPI的高低与否实际上和处理器以及处理器功能有关,可以通过实验方法运行已知的负载得出。例如,你会发现高CPI的负载可以使CPI达到10或者更高,而在低CPI的负载下,CPI低于1(受益于前述的指令流水线和宽度技术,这是可以达到的)。

值得注意的是,CPI代表了指令处理的效率,但并不代表指令本身的效率。假设有一个软件改动,加入了一个低效率的循环,这个循环主要在操作CPU寄存器(没有停止周期):这种改动可能会降低总体CPI,但会提高CPU的使用和利用度。

uptime命令,执行结果如下:

1、10:19:04 //系统当前时间 
2、up 257 days, 18:56 //主机已运行时间,时间越大,说明你的机器越稳定。 
3、12 user //用户连接数,是总连接数而不是用户数 
4、load average // 系统平均负载,统计最近1,5,15分钟的系统平均负载(和vmstat的r列相关联)

uptime得出的1分钟、5分钟、15分钟的三个值除以逻辑核数都大于1,说明cpu负载很大,至于瓶颈需要分析了:

CPU 密集型进程,使用大量 CPU 会导致平均负载升高,这时候两者是一致的。
I/O 密集型进程,等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高。
大量等待 CPU 的进程调度也会导致平均负载很高,此时的 CPU 使用率也会比较高

工具法检查CPU:

1. uptime:检查负载平均数以确认CPU负载是随时间上升还是下降。负载平均数超过了CPU数量通常代表CPU饱和。

2. vmstat:每秒运行vmstat,然后检查空闲列,看看还有多少余量。少于10%可能是一个问题。

3.mpstat:检查单个热点(繁忙)CPU,挑出一个可能的线程扩展性问题。

4.top/prstat : 看看哪个进程和用户是CPU消耗大户。

5.pidstat /prstat: 把CPU消耗大户分解成用户和系统时间。

6. perf / dtrace / stap / oprofile : 从用户时间或者内核时间的角度剖析CPU使用的堆栈跟踪,以了解为什么使用这么多CPU。

7. perf / cpustat : 测量CPI。

USE方法检查CPU

USE方法可以在性能调查的早期,在更深入和更耗时的其他策略之前,用来发现所有组件内的瓶颈和错误。

对于每个CPU,检查一下内容:

使用率:CPU繁忙的时间(未在空闲线程中)

饱和度:可运行线程排队等待CPU的程度

错误:CPU错误,包括可改正错误

错误可以优先检查,因为检查通常较快,并且最容易理解。有些处理器和操作系统可以感知到可以改正错误的上升(错误更正码,ECC),并在不可改正错误造成CPU失效前关闭一个CPU作为警示。检查错误包括检查是否所有CPU都在线。

参考资料:https://blog.csdn.net/xiaojianpitt/article/details/7613489/

《性能之巅》

转载于:https://www.cnblogs.com/wx170119/p/11433434.html

相关文章:

canvas 文字颜色_Canvas技术概述

Canvas简介在学习一项新技术之前,先了解这项技术的历史发展及成因会帮助我们更深刻的理解这项技术。历史上,canvas最早是由Apple Inc. 提出的,在Mac OS X webkit中创建控制板组件使用,而在canvas称为HTML草案及标准之前&#xff0…

sql server 2008学习10 存储过程

输入输出参数: 给存储过程传参数,叫做输入参数,用户告诉存储过程需要 利用这个参数干些什么. 输出参数: 从存储过程得到那些数据. 创建一个可选参数的存储过程: create proc pa1 name varchar(50)NULL as if(name is not null)select * from a where name like name%; elsesele…

C#_关于静态类和静态方法(转)

静态类是不能实例化的,即不能new 我们直接使用它的属性与方法,静态类最大的特点就是共享。 静态类中的所有成员必须是静态的。 静态类可以有静态构造函数,静态构造函数不可继承。 静态构造函数可以用于静态类,也可用于非静态类。 …

Struts2和SpringMVC简单配置以及区别总结

Struts2: struts 2 是一个基于MVC(mode-view-con)设计模式的Web应用框架,是由Struts1和WebWork两个经典框架发展而来的。 工作流程: 1客户端浏览器发出HTTP请求 2根据web.xml配置,该请求被FilterDispatcher(过滤器调度员)接收 3根据struts.xm…

python数字类型及运算_Python基础之(基本数据类型及运算)

一、运算 1.1、算数运算1.2、比较运算:1.3、赋值运算:1.4、逻辑运算:1.5、成员运算:针对逻辑运算的进一步研究: 1、在没有()的情况下not 优先级高于 and,and优先级高于or,即优先级关系为( )>…

AJAX跨域访问解决方案

Case I. Web代理的方式 (on Server A) 即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web…

什么是生成器?

在python中, 要产生一个列表,可以这样写: a[] for i in range(10): a.append(i*2) 但是,这样挺麻烦的,产生一个列表,需要三行语句。所以,有人就想到能不能一行代码来表示呢?其实&a…

一项横断面人群研究中比较放射学阴性的中轴脊柱关节炎患者与强制性脊柱炎患者之间的差别...

原文 译文 Patients with Non-Radiographic Axial Spondyloarthritis Differ From Patients with Ankylosing Spondylitis in Several aspects– Results of a Cross-Sectional Cohort Study Uta Kiltz 1, Xenofon Baraliakos2, Pantelis Karakostas2, Manfred Igelmann…

day12-事务

day12总结[c1] 今日内容 l 事务 l 连接池 事务 事务概述 为了方便演示事务,我们需要创建一个account表: CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(30), balance NUMERIC(10.2) ); INSERT INTO…

ThinkPHP基础概念

OOP 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重…

008本周总结报告

这周主要做了下PTA的编程题目的练习和学习和了解了java的多线程,了解了进程和线程的定义,区别,联系等,并知道了多线程的利与弊,并了解了JVM下的多运行机制(本质是CPU 对应用程序的快速换)&#…

python3.8.5是python3吗_Python 升级到3.8.5

mac osx 安装最新版本的3.8.5 将/usr/local/bin目录下的python3.8和pip3.8复制一份并修改为python和pip。 修改python的路径,之后source文件。 输出requirements.txt到桌面 安装新版本的第三方库,我使用的第三方库很多,更新很慢。头大啊。 验…

不看后悔 如何删除WIN7的100M隐藏分区

http://notebook.it168.com/a2010/1101/1120/000001120453_2.shtml

tomcat下面web应用发布路径配置 ( 即虚拟目录配置 )

https://blog.csdn.net/AnQ17/article/details/52122236转载于:https://www.cnblogs.com/gangpao/p/9223504.html

strcpy +memcpy实现循环右移

#include<stdio.h>#include<assert.h>#include<string.h>char *strcpy(char*strDest,const char*strSrc){assert(strDest!NULL&&strSrc!NULL);char * addr strDest;while( *strSrc!\0)*strDest *strSrc;*strDest \0;return addr;}//循环移动steps…

python查看目录下的文件_Python——查看目录下所有的目录和文件

原博文 2019-05-06 19:31 − 写程序我们经常会遇到需要遍历某一个目录下的所有文件这个操作&#xff0c;然而python有现成的库&#xff0c;只需要2个循环就可以搞定。 1 import os 2 3 def all_path(dirname): 4 5 result []#所有的文件 6 7 for ma... 相关推荐 2019-12-10 14…

负载均衡策略深入剖析

在实际应用中&#xff0c;我们可能不想仅仅是把客户端的服务请求平均地分配给内部服务器&#xff0c;而不管服务器是否宕机。而是想使Pentium III服务器比Pentium II能接受更多的服务请求&#xff0c;一台处理服务请求较少的服务器能分配到更多的服务请求&#xff0c;出现故障的…

js 验证数据类型的4中方法

1.typeof 可以检验基本数据类型 但是引用数据类型&#xff08;复杂数据类型&#xff09;无用&#xff1b; 总结 &#xff1a; typeof 无法识别引用数据类型 包括 bull; 2.instanceof是一个二元运算符&#xff0c;左操作数是一个对象&#xff0c;右操作数是一个构造函数。如…

有关 ecshop 属性 {$goods.goods_attr|nl2br} 标签的赋值问题

1、nl2br() 函数在字符串中的每个新行 (\n) 之前插入 HTML 换行符 (<br />)。 2、 如果要向{$goods.goods_attr|nl2br}赋新值&#xff0c;这个值是保存在数据库中的&#xff0c;用户在商品页(goods.php)选择了商品属性(goods.attr)之后&#xff0c;点击"购买"就…

linux cp 强制覆盖_Linux基本操作教程

Linux基本操作教程点击蓝字关注我们01.Linux系统简介Linux&#xff0c;全称GNU/Linux&#xff0c;是一套免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于1991年第一次释出&#xff0c;它主要受到Minix和Unix思想的启发&#xff0c;是一个基于…

火焰图(Flame Graphs)的安装和基本用法

火焰图&#xff08;Flame Graphs&#xff09; 一、概述&#xff1a; 火焰图&#xff08;flame graph&#xff09;是性能分析的利器&#xff0c;通过它可以快速定位性能瓶颈点。 perf 命令&#xff08;performance 的缩写&#xff09;是 Linux 系统原生提供的性能分析工具&#…

用TCP/IP进行网际互联一

地址解析协议ARP主机知道某个目的主机的IP就可以知道该目的主机的物理地址。改进ARP每个ARP广播分组中都包含有发送方自身的IP和物理地址的绑定&#xff0c;接收方在处理ARP分组时&#xff0c;先在自己的缓存中更新发送方IP到物理地址的绑定信息。ARP是一个隐藏底层网络物理编址…

【learning】矩阵树定理

问题描述 给你一个图&#xff08;有向无向都ok&#xff09;&#xff0c;求这个图的生成树个数    一些概念 度数矩阵&#xff1a;\(a[i][i]degree[i]\)&#xff0c;其他等于\(0\) 入度矩阵&#xff1a;\(a[i][i]in\_degree[i]\)&#xff0c;其他等于\(0\) 出度矩阵&#xff1…

各大知名企业的Research展示

大公司為了要拉開彼此的差距, 除了專注於目前的產品外, 都會為了未來做準備, 而這些研究通常都會做一個 Research 的專區來呈現成果, 如下述列表: Google ResearchYahoo! ResearchThe Facebook ProjectMicrosoft Research - Turning Ideas into Reality微軟亞洲研究院IBM Resea…

解决Eclipse添加新server时无法选择Tomcat7的问题

关闭Eclipse删除WorkSpace目录下/.metadata/.plugins/org.eclipse.core.runtime/.settings目录中的org.eclipse.wst.server.core.prefs和org.eclipse.jst.server.tomcat.core.prefs重启Eclipse转载于:https://www.cnblogs.com/tnsay/p/11466746.html

java 判断object类型_Java学习-方法与多态的学习心得

一 1.什么是方法重写方法的重写或方法的覆盖&#xff08;overriding&#xff09;子类根据需求对从父类继承的方法进行重新编写重写时&#xff0c;可以用super.方法的方式来保留父类的方法构造方法不能被重写 2.方法重写规则(1)方法名相同(2)参数列表相同(3)返回值类型相同或者是…

实习日志(2)2011-12-30

这篇文章并没有给出如何使用ResultSet的具体例子&#xff0c;只是从ResultSet的功能性上进行了详细的讲述。希望这篇文章对大家理解ResultSet能够有所帮助。下面就是这篇文章的具体内容。 结果集(ResultSet)是数据中查询结果返回的一种对象&#xff0c;可以说结果集是一个…

Javascript使用三大家族和事件来DIY动画效果相关笔记(一)

1.offset家族◆offsetWidth和offsetHeight表示盒子真实的宽度高度&#xff0c;这个真实的宽度包括 四周的边框、四周的padding、及定义的宽度高度或内容撑开的高度和宽度&#xff0c;可以用来检测盒子实际的大小&#xff0c;属性也是只读不可写的&#xff0c;返回的是不带单位的…

React 学习

一、搭建webpack4.x环境 1.创建工程文件夹&#xff08;ReactDemo&#xff09; 2.在工程文件夹下&#xff0c;快速初始化项目 npm init -y // 创建一个package.json文件 3.在工程文件夹下&#xff0c;创建源码文件夹&#xff08;src&#xff09;和编译打包文件夹&#xf…

python创建mysql数据库_python 怎么创建create mysql的数据库

展开全部 我采用的是MySQLdb操作的MYSQL数据库。先来一个简单的例2113子吧&#xff1a; import MySQLdb try: connMySQLdb.connect(hostlocalhost,userroot,passwdroot,dbtest,port3306) curconn.cursor() cur.execute(select * from user) cur.close() conn.close() except My…