实验内容一

选择一款评测软件,测评自己的计算机。并列举你在本实验中学到的三个性能参数。

实验过程一

在计算机测评软件,我首先使用了目前比较普及和常用的鲁大师测评计分。
但是在得到综合性能得分之后,我无法更进一步的了解内容,只是单纯地得到了一个分数,这并不具备什么实际的意义,所以我把目标聚焦在了CPU单个组件的评测上,并且将评测软件进行了更换,使用国际象棋大师软件来进行评测,该软件可以检测到CPU的多线程和单线程计算能力,而且一键测试很直观,因为单纯的分数没有意义,国际象棋大师的特点在于他给出的数据是相对于P3 1.0GHZ的运行速度的倍数,更有实际价值。
因为国际象棋大师中只获得了两个性能参数,所以又通过CPU-Z软件进行了CPU的测评。最终完成实验1.

实验结果(1):

鲁大师:
在这里插入图片描述

国际象棋大师:
在这里插入图片描述

CPU-Z:
在这里插入图片描述

在本次CPU的测评中我学习到的三个性能相关参数:
1.对比倍数:相较于P3 1.0GHZ的执行速度,CPU的速度是它的多少倍
2.每秒千步:每秒可以执行多少次计算操作
3.倍频:这个CPU主板支持可以调整的频率

实验分析(1):

通过网络上一些比较常用的计算机性能测评软件进行评测,但是需要的不只是一个单独的分数,而是一些具体的参数数值。

心得体会(1):

单独的评测分数完全没有意义,因为标准是一直变化的,所以国际象棋大师那种明确性能标准或者CPU-Z那样直接获取参数的评测软件我认为会更有实际参考价值一些。

实验内容二:toy benchmark的编写并测试。

用C语言编写一个程序(10-100行语句),该程序包括两个子程序,两个子程序完成相同的功能,但一个子程序主要采用整数操作完成,另一个子程序主要采用浮点操作完成。两个子程序执行的频率(频率整数,频率浮点)可调整。请在你的计算机上,以(0.5,0.5),(0.1,0.9),(0.9,0.1)的频率运行你编写的程序,并算出三种情况下的加权平均运行时间。
小程序示例:求某个浮点数(小数点后的位数固定)的若干次幂。可以采用:
(1)整数方法:先将浮点数转换成整数(乘以10的若干次方),然后求整数的幂,最后再将结果转换成浮点数(除以10的若干次方)。
(2)浮点方法:直接计算double数的幂,该方法会比第一种方法用更长的时间。
注意:(1)两种方法分别作为子程序写在一个程序中。两种方法的子程序都需要运行多次才能看出差距。(2)由于整数表示范围有限,所以第一种方法的运算结果可能因超过整数表示范围而不正确。不过,这里只关注运行时间,运行结果可不考虑。(3)可按照该示例编写程序,也可编写自己的小程序。

实验过程(2):

首先,我按照题目中提到的示例进行了程序的编写:所实现的具体功能就是计算9.19114的10次幂。
在这里插入图片描述

接下来,通过循环执行子程序,获得子程序的具体执行时间:
在这里插入图片描述

将这两个子程序运行,得到结果如下:
在这里插入图片描述

通过子程序的运行时间,加权计算不同频率程序执行时间:
整形,浮点比例	(0.5,0.5)	(0.1,0.9)	(0.9,0.1)
加权时间	0.159,0.1662,0.1518

接下来,通过程序执行进行验证:
在这里插入图片描述

更多进行浮点子程序运算:
在这里插入图片描述

更多进行整数子程序运算:
在这里插入图片描述

执行程序后得到结果如下:
在这里插入图片描述

实验结果(2):

和之前计算过程对比结果如下:
在这里插入图片描述

实验分析(2):

大小关系和之前计算结果一致,具体时间的不同我认为有以下两个原因:
1.程序执行的时间自身存在波动
2.子程序多了一个循环语句,虽然总的循环次数一致,但是可能多出来的循环语句也有影响
所以我认为时间存在的误差是可以接受的正常情况。

心得体会(2):

在本次实验中,我通过将浮点数进行整数化再转换回浮点数,可以使得程序更快被执行。而整形和浮点两类子程序不同操作按照一定的频率进行操作的时候,执行时间和我们加权平均的计算结果接近。

实验总结:

在进行实验1的计算机性能评测的过程中,我首先使用鲁大师,但是由于鲁大师只有评分没有其他信息,所以我改而使用了国际象棋大师进行评测,从中学习到的参数是对比倍数和每秒千步,因为还缺少一个参数,所以又使用了CPU-Z进行评测,学习到第三个参数:倍频。
在进行实验2的过程中,我使用的子程序是计算一个给定浮点数的指定幂次。因为程序较小,所以通过将子程序循环执行1000000次后进行时间的比对,再计算不同频率下的执行时间,并通过程序执行获取数据进行对比。

实验中遇到的问题(主要在实验2):
1.在对一个浮点数进行运算的时候,这个浮点数和运算的幂次一定要高,我一开始没有注意要求中的不考虑结果正确性,所以选择的是9.19的5次幂,这样的数据结果就是整形因为多一个浮点到整形再到浮点的步骤,执行时间反而更长了。所以在我修改为9.19114的10次幂之后问题就得到解决了。
2.在按照不同频率运行的时候,五五开的频率执行不能再一个循环里面同时放两个子程序:
在这里插入图片描述

而是应该两个分开,如下图所示:
在这里插入图片描述

因为如果是第一种情况的话,不仅和后面两个不同频率的结构存在不同,而且从得到的结果来看的话这样执行的时间甚至也会比0.9整形频率的要短。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐