CPU的主振频率为100MHZ,即该CPU每秒有100M/4=25M个主振周期。
计算机的速度平均约为25M/(2525%+12540%+1525%+155%+55%)=10M指令/秒。
所以A为③。
某项事务处理工作所要执行的控制程序的平均指令周期为:
(2525%+1525%+55%)/(25%+25%+5%)=22727
业务程序的平均指令周期为:
(155%+12540%)/(5%+40%)=27777
完成一项事务处理工作所需的机器周期约为:
22000022727+9000027777=749987
这样该计算机系统的事务处理能力约为25M/749987=3333项/秒
即B为⑥
提高计算机主频至150MHz,则150M/4=375M主振周期。
该计算机的速度平均约为375/25=15M指令/秒。
375/749987=50项/秒。
所以C为④ D为⑦。
25M/125=20M
所以E为⑤。
本题为97年高程试题第8题~
你好,下面是windows的获取cpu频率的代码。
def get_windows_cpu_speed():
import winreg
key = winregOpenKey(winregHKEY_LOCAL_MACHINE, r"HARDWARE\DESCRIPTION\System\CentralProcessor\0")
speed, type = winregQueryValueEx(key, "~MHz")
speed = round(float(speed)/1024, 1)
return "{speed} GHz"format(speed=speed)
CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。
主频
主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。
CPU的主频=外频×倍频系数。主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。
在Intel的处理器产品中,也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟266 GHz至强(Xeon)/Opteron一样快,或是15 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线、总线等各方面的性能指标。
外频
外频是CPU的基准频率,单位是MHz。CPU的外频决定着整块主板的运行速度。通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。
但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。
总线频率
AMD 羿龙II X4 955黑盒
前端总线(FSB)是将CPU连接到北桥芯片的总线。前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。
有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是64GB/秒。
外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。
也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。
倍频系数
倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。
一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。
缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。
实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。
L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般服务器CPU的L1缓存的容量通常在32-256KB。
L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。
L2高速缓存容量也会影响CPU的性能,原则是越大越好,以前家庭用CPU容量最大的是512KB,笔记本电脑中也可以达到2M,而服务器和工作站上用CPU的L2高速缓存更高,可以达到8M以上。
L3 Cache(三级缓存),分为两种,早期的是外置,内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。
而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。
推荐用CString。
比如:
DWORD dwSys1 = 0x22334455;
DWORD dwSys2 = 0x34567890;
CString str;
strFormat("%u\n%u",dwSys1,dwSys2);
MessageBox(NULL, str, NULL, MB_OK);
补充:
不用CString也行,可以使用sprintf等函数。
原型为:
int sprintf( char buffer, const char format [, argument] );
buffer用于接收结果,format以后的参数类似于printf中的相应参数。
对于上述例子,我们可以这么做:
DWORD dwSys1 = 0x22334455;
DWORD dwSys2 = 0x34567890;
char str = new char[256];
sprintf(str,"%u\n%u",dwSys1,dwSys2);
MessageBox(NULL, str, NULL, MB_OK); // 针对不同的头文件,MessageBox参数可能发生变化
如果要将这些内容复制到数组中,可以使用动态的字符串数组。
比如:
char strArray = new char[4];
for(int i=0; i<4; i++)
{
// 这里做一些复制的工作
strArray[i] = new char[256];
sprintf( …… );
}
// 这里添加你要的其他代码
……
// 然后开始释放内存
for(int j=0; j<4; j++) delete [] strArray[j]; // 释放数组分量对应的内存
delete[] strArray; // 释放指针数组的内存
“打开程序后,没有运行程序”什么意思,你是说,点击运行程序后没有界面出现,但进程管理器有该程序么?这样就是你代码的问题,一般是死循环之类的程序逻辑错误吧,这个要看具体代码才行。
另外,向导创建的空MFC程序先看是否可以正常运行,这个涉及其它类型问题。
以上就是关于CPU速度是怎样计算的全部的内容,包括:CPU速度是怎样计算的、python获取cpu当前速度、如何看CPU的快慢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)