CN103559113A - 系统运算性能测试方法及装置 - Google Patents
系统运算性能测试方法及装置 Download PDFInfo
- Publication number
- CN103559113A CN103559113A CN201310545594.XA CN201310545594A CN103559113A CN 103559113 A CN103559113 A CN 103559113A CN 201310545594 A CN201310545594 A CN 201310545594A CN 103559113 A CN103559113 A CN 103559113A
- Authority
- CN
- China
- Prior art keywords
- test
- threads
- pattern
- module
- algorithms
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
Abstract
本发明实施例提供的一种系统运算性能测试方法及装置,可以使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。
Description
技术领域
本发明涉及系统测评技术领域,特别是涉及系统运算性能测试方法及装置。
背景技术
随着科技的发展,手机、笔记本电脑、平板电脑等电子设备的功能也日益强大。目前,各种应用软件的不断涌现,众多的程序、服务都对电子设备的系统运算性能提出了更高的要求。所谓“系统运算性能”,是指电子设备的系统整体的运算性能表现,其中,“系统”是指CPU、内存,输入输出I/O等硬件和在这些硬件上运行的操作系统的总和。电子设备的系统运算性能越强,电子设备的运算速度会越快,也就是说,电子设备执行单个或者同时执行多个应用程序会更加的流畅。
目前,为了让用户更好的了解电子设备的系统运算性能,技术人员开发出了系统测评软件(也可称为“跑分”软件)。这种系统测评软件在电子设备上运行时,可以通过一定的测试方法对电子设备的系统运算性能进行测试,并将测试结果告知用户,从而帮助用户了解电子设备的系统运算性能的高低情况。
现有技术中,系统测评软件通常采用控制电子设备启动线程执行算法的方式对系统运算性能进行测试,但这种测试方法一般采用启动单一线程或者启动多个线程执行单一算法的方式对系统运算性能进行测试。在电子设备的实际使用过程中,电子设备运行应用程序的数量以及时间是随机的,电子设备中启动的线程数和运算的算法的数量也是变化不定的,因此采用现有的测试方法对系统运算性能测试后的测试结果并不能体现出电子设备的真实情况,准确性较低。
发明内容
本发明实施例的目的在于提供一种系统运算性能测试方法及装置,以实现有效提高测试结果准确性的目的。
为达到上述目的,本发明实施例公开了一种系统运算性能测试方法,运行于电子设备中,所述方法包括:
接收用户的测试指令;
根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果;
对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
将所述系统运算性能的测试结果告知用户;
其中:
所述至少两种测试模式中的各测试模式通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
可选的,所述单算法有序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述单算法无序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述多算法有序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述多算法无序测试模式下,每个线程执行同一种算法至少两次。
可选的,所述单算法有序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第一阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
如果是,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第一阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
可选的,所述单算法无序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第三阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
如果是,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第三阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
可选的,所述多算法有序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第五阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
如果是,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第五阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备控制所述电子设备同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
可选的,所述多算法无序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第七阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
如果是,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第七阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
可选的,所述对各测试模式对应的所述模式测试结果进行数学运算处理,将数学运算处理后得到的结果作为系统运算性能的测试结果,包括:
根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
为达到上述目的,本发明实施例公开了一种系统运算性能测试装置,应用于电子设备中,所述装置包括:指令接收模块、性能测试模块、结果处理模块和结果通知模块;
所述指令接收模块,用于接收用户的测试指令;
所述性能测试模块,用于根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果,其中:
所述性能测试模块在所述至少两种测试模式中的各测试模式中通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述结果处理模块,用于对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
所述结果通知模块,用于将所述系统运算性能的测试结果告知给用户。
可选的,所述单算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述单算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述多算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述多算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次。
可选的,所述性能测试模块包括单算法有序测试模块,
所述单算法有序测试模块包括:第一测试模块和第一误差模块,
所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述第一误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值并确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
或者
所述单算法有序测试模块包括:第一测试模块和第二误差模块,
所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述第二误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
可选的,所述性能测试模块包括单算法无序测试模块,
所述单算法无序测试模块包括:第二测试模块和第三误差模块,
所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述第三误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
或者
所述单算法无序测试模块包括:第二测试模块和第四误差模块,
所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述第四误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
可选的,所述性能测试模块包括多算法有序测试模块,
所述多算法有序测试模块包括:第三测试模块和第五误差模块,
所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述第五误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
或者
所述多算法有序测试模块包括:第三测试模块和第六误差模块,
所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述第六误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
可选的,所述性能测试模块包括多算法无序测试模块,
所述多算法无序测试模块包括:第四测试模块和第七误差模块,
所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述第七误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
或者
所述多算法无序测试模块包括:第四测试模块和第八误差模块,
所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述第八误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
可选的,所述结果处理模块,包括:加权模块和计算模块,
所述加权模块,用于根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
所述计算模块,用于根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
本发明实施例提供的系统运算性能测试方法及装置,使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统运算性能测试方法的流程图;
图2为本发明实施例提供的另一种系统运算性能测试方法中进行单算法有序测试的流程图;
图3为本发明实施例提供的另一种系统运算性能测试方法中进行单算法有序测试的流程图;
图4为本发明实施例提供的另一种系统运算性能测试方法中进行单算法无序测试的流程图;
图5为本发明实施例提供的另一种系统运算性能测试方法中进行单算法无序测试的流程图;
图6为本发明实施例提供的另一种系统运算性能测试方法中进行多算法有序测试的流程图;
图7为本发明实施例提供的另一种系统运算性能测试方法中进行多算法有序测试的流程图;
图8为本发明实施例提供的另一种系统运算性能测试方法中进行多算法无序测试的流程图;
图9为本发明实施例提供的另一种系统运算性能测试方法中进行多算法无序测试的流程图;
图10为本发明实施例提供的一种系统运算性能测试装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供的一种系统运算性能测试方法,运行于电子设备中,该方法可以包括:
S100、接收用户的测试指令;
具体的,可以在电子设备的屏幕上显示一交互界面,该交互界面上设置有按键等用于接收用户的测试指令的接口,用户可通过点击该按键,下达测试指令。
S200、根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果;
其中:
所述至少两种测试模式中的各测试模式通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
本发明实施例中,使用至少两种测试模式对电子设备进行测试,而且所使用的测试模式的针对性不同。
其中,单算法有序测试模式也可以被称为压力测试模式,在该测试模式下,电子设备会同时启动执行相同算法的多个线程,因此会使电子设备的处理器处于满负荷运行状态,利于检测处理器的数据处理能力,以及系统对线程的调度能力。
单算法无序测试模式可以针对具有不同CPU核数的电子设备进行测试。不同CPU核数的电子设备对于线程的处理和运算能力的表现是不同的,有的电子设备上运行单线程表现很好,但是运行多线程表现较差。而有的电子设备运行多线程表现很好,但是运行单线程表现较差。而通过单算法无序测试模式能够检测电子设备对多线程的运算能力和线程调度能力。
在电子设备的使用过程中,可能同时执行多种算法,有的算法会用到浮点数据处理,有的算法会用到整数数据处理。而多算法有序测试模式就可以模拟电子设备这种真实的使用情况,通过同时启动多个线程执行多种算法来检测电子设备的综合运算能力和线程调度能力。
由于在电子设备的实际使用中,各线程的启动时间可能并不相同,各线程所执行的算法也可能并不相同。而多线程无序测试模式通过在不同时刻分别启动执行不同算法的多个线程,可以测试系统在电子设备的综合使用情况下的数据运算和线程调度能力,其测试结果更能体现电子设备在实际使用中的性能。
可选的,本发明实施例中,可以分别使用单算法有序测试模式、单算法无序测试模式、多算法有序测试模式和多算法无序测试模式对电子设备进行测试,由于不同的测试模式的针对性不同,因此可以测试出电子设备在不同使用情况下的系统运算性能,因此测试较为全面,能够进一步提高测试的准确性和可信性。
需要说明的一点是,本步骤中,无论那种测试模式,进行测试所采用的算法中包括两类算法,一类是整型数据算法,一类是浮点数据算法。整型数据算法可以测试CPU整型运算性能,浮点数据算法可以测试CPU浮点运算性能。因此,每种模式测试结果中包括分别与算法对应的两种模式测试结果,分别为CPU整型运算性能测试结果和CPU浮点运算性能测试结果。
其中,整型数据算法可以包括:数组排序算法、字符串排序算法、位运算、模拟浮点运算、任务分配算法、国际数据加密算法、哈夫曼编码算法中的任意种。浮点数据算法可以包括:傅立叶变换、神经网络算法、矩阵分解算法中的任意种。本领域技术人员可以对算法进行选择。
在单算法有序测试模式下,电子设备同时启动执行相同算法的多个线程,该相同的算法可以为整型数据算法,也可以为浮点数据算法。由于需要得到CPU整型运算性能测试结果和CPU浮点运算性能测试结果,因此,在单算法有序测试模式下,需要电子设备同时启动执行相同的整型数据算法的多个线程进行CPU整型运算性能的测试,还需要电子设备同时启动执行相同的浮点数据算法的多个线程进行CPU浮点运算性能的测试。当然,整型数据算法和浮点数据算法的执行顺序本发明不做限定。
同样,在单算法无序测试模式下,电子设备在不同时刻分别启动执行相同算法的多个线程,该算法可以为整型数据算法,也可以为浮点数据算法。在单算法无序测试模式下,需要电子设备在不同时刻分别启动执行相同的整型数据算法的多个线程进行CPU整型运算性能的测试,还需要电子设备在不同时刻分别启动执行相同的浮点数据算法进行CPU浮点运算性能的测试。
而对于多算法有序测试模式,电子设备同时启动执行不同算法的多个线程,这些不同的算法可以包括整型数据算法和浮点数据算法。这样,一次执行“同时启动执行不同算法的多个线程”,就可以得到浮点运算和整型运算两种结果。
同样,对于多算法无序测试模式,电子设备在不同时刻分别启动执行不同算法的多个线程,这些不同的算法可以包括整型数据算法和浮点数据算法。这样,一次执行“在不同时刻分别启动执行不同算法的多个线程”,就可以得到浮点运算和整型运算两种结果。
即:对于多算法有序测试模式和单算法无序测试模式,所启动的多个线程中的部分线程可以执行整型数据算法,另一部分线程可以执行浮点数据算法。执行整型数据算法的部分线程中的每个线程所执行的整型数据算法可以为不同的整型数据算法,执行浮点数据算法的部分线程中的每个线程所执行的浮点数据算法也可以为不同的浮点数据算法。
本发明实施例中,在采用各测试模式进行测试时,将获取各线程中算法的执行时间,进而根据每个线程中算法的执行时间,得到模式测试结果。具体而言,将根据用于执行整型数据算法的线程中的整型数据算法的执行时间,得到CPU整型运算性能测试结果,根据用于执行浮点数据算法的线程中的浮点数据算法的执行时间,得到CPU浮点运算性能测试结果。
需要强调的是,每个线程从启动到结束所持续的时间为线程运行时间,而“算法的执行时间”是指线程运行时间中用于执行算法而消耗的时间,线程运行时间中包括算法的执行时间但长于算法的执行时间。
具体地,在各测试模式下,每一次测试都会获得每一次测试的结果。这里的“每一次测试”是指,对于单算法有序测试模式,同时启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于单算法无序测试模式,在不同时刻分别启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法有序测试模式,同时启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法无序测试模式,在不同时刻分别启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试。在改变算法后,各测试模式进行下一次的测试。
在单算法有序测试模式和单算法无序测试模式下,由于每次测试所启动的线程执行相同的算法,但需要获得整型和浮点两种测试结果,因此,单算法有序测试模式和单算法无序测试模式中至少需要进行两次测试,一次执行整形数据算法,一次执行浮点数据算法。而对于多算法有序测试模式和多算法无序测试模式,由于每次测试所启动的线程执行不同的算法,该不同的算法可以包括整型数据算法和浮点数据算法,因此,多算法有序测试模式和多算法无序测试模式可进行一次测试即可,一次测试即可获得整型和浮点两种测试结果,当然,也可以进行多次测试。
在各测试模式下,在每一次测试中,可以获得所启动的多个线程中各个线程执行某算法的时间(即算法的执行时间),进而对每一个时间进行评分,即通过一定的对应关系将时间换算成评分。然后对这些评分进行数学运算,具体可以是对这些评分中执行整型数据算法的时间的对应的评分进行数学运算(例如平均运算)和执行浮点数据算法的时间的对应的评分进行数学运算(例如平均运算)。上述的处理可以在每一次测试后就进行,也可在整个测试模式的所有测试完成后进行。进而,根据各次测试的执行整型数据算法的时间的对应的评分进行数学运算的结果,再次进行数学运算,例如加权平均计算,获得该测试模式的模式测试结果中的CPU整型运算性能测试结果,根据各次测试的执行浮点数据算法的时间对应的评分进行数学运算的结果,再次进行数学运算,例如加权平均计算,获得该测试模式的模式测试结果中的CPU浮点运算性能测试结果。
S300、对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果。
对所获得的不同测试模式下的模式测试结果进行的数学运算处理可以有多种,如算数平均(又称为相加平均)、几何平均(又称为相乘平均)、调和平均等。另外,还可以为不同测试模式下的模式测试结果设置权值,并带入上述数学运算处理中。
其中,步骤S300可以包括:
根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
分别对各测试模式的CPU整型运算性能的加权值进行运算可以得到使用多个测试模式后的该电子设备的CPU整型运算性能评分。同理,分别对各测试模式的CPU浮点运算性能的加权值进行运算可以得到使用多个测试模式后的该电子设备的CPU浮点运算性能评分。最后再对该电子设备的CPU浮点运算性能评分及CPU整型运算性能评分进行综合计算即可。
S400、将所述系统运算性能的测试结果告知用户。
具体的,可以将系统运算性能的测试结果在显示屏等输出装置上输出,或生成包含有电子设备系统运算性能的测试结果的文件并提示用户测试已完成,以方便用户将该测试结果发送到其他设备中,例如上传到网络侧设备。
本发明实施例提供的系统运算性能测试方法,使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。
进一步需要说明的是,可选的,在本发明实施例所采用的各测试模式下,每个线程可以执行同一种算法至少两次。即,本发明实施例中的测试方法中采用了单算法有序测试模式,在这种模式下,每个线程可执行同一种算法一次或者至少两次。而如果本发明实施例中的测试方法中采用了单算法无序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。如果本发明实施例中的测试方法中采用了多算法有序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。同样,如果本发明实施例中的测试方法中采用了多算法无序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。
本发明实施例中,“每个线程可以执行同一种算法至少两次”是指每一个用于执行某算法的线程在运行的过程中执行该算法的次数为至少两次。当然,在以上四种测试模式中,可以有任意一种或任意多种测试模式下的每个线程执行同一种算法至少两次。举例说明:
举例1:单算法有序测试模式下,第一次同时启动三个线程,本次启动中,这三个线程都执行同一种算法:算法1。第一个线程执行算法1至少两次,第二个线程执行算法1至少两次,第三个线程执行算法1至少两次。然后第二次同时启动三个线程,这三个线程都执行同一种算法:算法2至少两次。然后第三次启动三个线程,这三个线程都执行同一种算法:算法3至少两次。可以看出,单算法有序测试模式下,无论是第一次启动、第二次启动还是第三次启动,每次启动过程中,每个线程都执行一种算法至少两次。
在多算法有序测试模式和多算法无序测试模式下,每次启动多个线程执行算法的过程中,这多个线程中所执行的算法不相同,例如:举例2:多算法有序测试模式下,第一次同时启动三个线程,第一个线程执行算法1至少两次,第二个线程执行算法2至少两次,第三个线程执行算法3至少两次。第二次同时启动三个线程,第一个线程执行算法4至少两次,第二个线程执行算法5至少两次,第三个线程执行算法6至少两次。但是,对于一个线程来说,该线程至少两次执行的算法是相同的。
需要说明的一点是,进行测试的算法中包括两类,一类是整型数据算法,一类是浮点数据算法。例如对于单算法有序测试模式和单算法无序测试模式,所启动执行相同算法的多个线程可以执行整型数据算法中的一种,例如举例1中的算法1为整型数据算法,所启动执行相同算法的多个线程可以执行浮点数据算法中的一种,例如举例1中的算法2为浮点数据算法。当然,整型数据算法和浮点数据算法的执行顺序本发明不做限定。
再如对于多算法有序测试模式和多算法无序测试模式,可以在一次测试启动中就在所启动的多个线程中分别执行整型数据算法和浮点数据算法。即:所启动的执行不同算法的多个线程中的部分线程可以执行整型数据算法,另一部分线程可以执行浮点数据算法,例如举例2中的算法1、2为整型数据算法,举例2中的算法3为浮点数据算法。执行整型数据算法的部分线程中的每个线程所执行的整型数据算法可以为不同的整型数据算法,执行浮点数据算法的部分线程中的每个线程所执行的浮点数据算法也可以为不同的浮点数据算法。
为了避免由于在测试过程中出现异常而导致模式测试结果不准确的问题,提高测试结果的准确率,可以对每一次测试的测试结果进行误差判断。这里的“每一次测试”是指,对于单算法有序测试模式,同时启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于单算法无序测试模式,在不同时刻分别启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法有序测试模式,同时启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法无序测试模式,在不同时刻分别启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试。
具体的,单算法有序测试模式和单算法无序测试模式下,每一次测试完成后,根据本次测试下的所有线程对应的测试结果进行误差值计算。其中,所有线程对应的测试结果可以为这些线程中算法的执行时间对应的评分。具体的,误差值可以为每次测试中得到的算法的执行时间对应的评分的标准方差与这些评分的平均值的比值。这样,由于每次测试中所有线程所执行的算法相同,一次测试后,将得到一个误差值。如果该误差值不大于预设阈值,表明本次测试有效,可以使用本次测试得到的测试结果确定模式测试结果;当该误差值大于预设阈值时,重复本次测试(即所启动的线程和线程所执行的算法与本次测试完全相同),并根据重复测试下的所有线程的测试结果进行误差值计算,以此类推,直至误差值低于预设阈值。其中,预设阈值可以0.3-0.5。
例如,单算法有序测试模式或单算法无序测试模式下,一次测试启动执行算法A的三个线程,并且每个线程执行算法A五次。在这次测试结束后,每个线程执行算法A一次得到1个评分,每个线程得到5个评分,本次测试共得到15个评分。在计算误差值时,将计算出这15个评分的标准方差和这15个评分的平均值,并确定出两者的比值。
多算法有序测试模式和多算法无序测试模式下,每一次测试完成后,根据本次测试下的各线程对应的测试结果进行误差值计算。其中,各线程对应的测试结果包括执行每一种算法的线程对应的测试结果,该测试结果可以为该线程中算法的执行时间对应的评分。由于所有线程所执行的算法均不相同,本次测试后,每一个线程均对应一个误差值。假设本次测试启动4个线程,每个线程将对应一个误差值,共4个误差值。其中,每个线程对应的误差值可以为该线程得到的算法的执行时间对应的评分的标准方差与这些评分的平均值的比值。而一次测试后,将得到与线程数目相同数目的误差值。如果这些误差值中的所有值都不大于预设阈值,表明本次测试有效,可以使用本次测试得到的测试结果确定模式测试结果;当这些误差值中的至少一个误差值大于其对应的预设阈值时,重复本次测试(即所启动的线程和线程所执行的算法与本次测试完全相同),并根据重复测试下的所有线程的测试结果进行误差值计算,以此类推,直至所有误差值均低于预设阈值。其中,预设阈值可以0.3-0.5。
例如:举例3:多算法无序测试模式下,第一次测试分别在不同时刻启动两个线程,第一个线程执行数组排序算法(整型数据算法中的一种)16次,第二个线程执行傅立叶变换算法(浮点数据算法中的一种)16次。那么在本次测试完成后,获得第一个线程每次执行数组排序算法所用的时间,并对其进行评分,共16个评分,在本次测试完成后,获得第二个线程每次执行傅里叶变换算法所用的时间,并对其进行评分,也是16个评分。在进行误差值计算时,根据第一个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,从而获得误差值,假设该误差值小于预设阈值。在进行误差值计算时,根据第二个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,从而获得误差值,假设该误差值大于预设阈值。由于一个误差值大于预设阈值,将再次重复进行测试,本次重复测试与第一次测试中使用的算法相同,同样使用两个线程:第二次分别在不同时刻启动两个线程,第一个线程执行数组排序算法16次,第二个线程执行傅里叶变换算法16次。那么在本次启动的这两个线程中的数组排序算法和傅里叶变换算法全部执行完毕后,获得本次测试启动中,第一个线程每次执行数组排序算法所用的时间,并对其进行评分,共16个评分,获得本次测试启动中,第二个线程每次执行傅里叶变换算法所用的时间,并对其进行评分,也是16个评分。进而对本次测试的误差值进行计算:根据第一个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,获得执行数组排序算法的误差值,该误差值小于预设阈值。根据第二个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,获得执行傅里叶变换算法的误差值,该误差值小于预设阈值。
由于第二次测试的两个误差值均小于预设阈值,因此可以根据第二次测试的评分得到多算法无序测试模式的模式测试结果,具体的:对第二次测试的第一个线程所对应的16个评分进行数学运算后可以得到多算法无序测试模式下第二次测试启动所对应的CPU整型运算性能测试结果,对第二次测试的第二个线程所对应的16个评分进行数学运算后可以得到多算法无序测试模式下第二次测试启动所对应的CPU浮点运算性能测试结果。将第二次测试启动所对应的CPU整型运算性能测试结果和第二次测试启动所对应的CPU浮点运算性能测试结果作为多算法无序测试模式的模式测试结果。也即:各测试模式的模式测试结果可以由各测试模式下的CPU整型运算性能测试结果和各测试模式下的CPU浮点运算性能测试结果组成。
进一步的,为了避免无休止的重复测试,可以设置一个最大相同测试次数。为了便于表述和理解,这里引入“相同测试次数”的概念。对于单算法有序测试模式,电子设备首次同时启动执行相同算法的多个线程,例如算法1,在这多个线程运行结束后,相同测试次数增加一次,在算法不变的情况下,如果再次重复上述的首次测试,即再次同时启动执行算法1的多个线程进行测试,相同测试次数再增加一次,以此类推。
对于单算法无序测试模式,电子设备首次在不同时刻分别启动执行相同算法的多个线程进行测试,假设为算法1,在这多个线程运行结束后,相同测试次数增加一次,在算法不变的情况下,如果再次重复上述的首次测试,即再次在不同时刻分别启动执行算法1的多个线程进行测试,相同测试次数再增加一次。
同样,对于多算法有序测试模式,电子设备首次同时启动执行不同算法的多个线程进行测试,例如,执行算法1、2、3……的多个线程,在这多个线程运行结束后,相同测试次数增加一次。在算法不变的情况下,如果再次重复上述的首次测试,即再次同时启动执行算法1、2、3……的多个线程进行测试,相同测试次数再增加一次。
同样,对于多算法无序测试模式,电子设备首次在不同时刻分别启动执行不同算法的多个线程进行测试,例如,执行算法1、2、3……的多个线程,在这多个线程运行结束后,相同测试次数增加一次。在算法不变的情况下,如果再次重复上述的首次测试,即再次在不同时刻分别启动执行算法1、2、3……的多个线程进行测试,相同测试次数再增加一次。
在各测试模式下,如果每一次测试后,误差值不满足测试结果有效的要求,即至少一个误差值大于预先设定的阈值,可以进一步判断一下本次测试对应的“相同测试次数”是否大于预先设定的最大相同测试次数,例如100次,即确定一下是否已经重复测试了很多次,该次数超过预先设定的最大相同测试次数。如果否,将重复本次测试。如果是,可停止测试,或者弹出提示,提示用户停止测试或者选择其他时间另行测试。
如图2所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S210、所述单算法有序测试模式下,控制电子设备同时启动执行相同算法的所述多个线程。
S211、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值。
其中,每个线程对应的测试结果包括每个线程对应的算法的执行时间对应的评分,该评分可以为执行时间本身,也可以与执行时间不同但相对应。如果一个线程执行一个算法一次,得到一个评分,而如果一个线程执行算法至少两次,每次执行算法将得到一个评分,可得到至少两个得分,例如,一个线程执行算法A三次,得到3个评分。
S212、确定所述计算的误差值是否大于预设的第一阈值,如果否,执行步骤S213,如果是,重新执行步骤S210。
具体的,确定误差值的方式有多种,如:计算每个线程的算法执行时间对应的评分的标准方差与执行时间对应的评分的平均值的比值,将该比值作为误差值。可选的,第一阈值可以为0.3至0.5中的任意数值。可参见前文描述,这里不再赘述。
其中,重新执行步骤S210表示,在重新执行的步骤S210中所启动的线程的数量和线程所执行的算法与前次执行步骤S210完全相同。
S213、根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果。
图2所示实施例可以根据测试结果计算误差值,当误差值较高时则再次启动线程进行测试,利用多次启动线程进行更多次的测试来降低误差。
如图3所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S210、所述单算法有序测试模式下,控制电子设备同时启动执行相同算法的所述多个线程;
S211、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S212、确定所述计算的误差值是否大于预设的第一阈值,如果否,执行步骤S213,如果是,执行步骤S214;
S213、根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
可以理解的是,在误差值不大于预设的第一阈值时,可以不立即执行步骤S213,而是等待整个单算法有序测试模式的测试全部结束后再根据所有线程对应的测试结果确定模式测试结果。
S214、确定步骤S210“控制所述电子设备同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,重新执行步骤S210,否则执行步骤S213。
本步骤中,确定步骤S210“控制所述电子设备同时启动执行相同算法的多个线程”的次数,即确定“控制所述电子设备同时启动执行相同算法的多个线程”的相同测试次数。
重新执行步骤S210表示,在重新执行的步骤S210中所启动的线程的数量和线程所执行的算法与前次执行步骤S210完全相同。
该第二阈值即为最大相同测试次数,例如为100次。
图3所示实施例也可以计算测试误差值,在误差值较高时,且相同测试次数低于最大相同测试次数时重复进行测试,通过重复测试来降低误差值。
如图4所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S220、所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
S221、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S222、确定所述计算的误差值是否大于预设的第三阈值,如果否,执行步骤S223,如果是,重新执行步骤S220;
重新执行步骤S220表示,在重新执行的步骤S220中所启动的线程的数量和线程所执行的算法与前次执行步骤S220完全相同。
S223、根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果。
如图5所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S220、所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
S221、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S222、确定所述计算的误差值是否大于预设的第三阈值,如果否,执行步骤S223,如果是,执行步骤S224;
S223、根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
S224、确定步骤S220“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,重新执行步骤S220。
本步骤中,确定步骤S220“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,即确定“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的相同测试次数。
重新执行步骤S220表示,在重新执行的步骤S220中所启动的线程的数量和线程所执行的算法与前次执行步骤S220完全相同。
该第四阈值即为最大相同测试次数,例如为100次。
在实际应用中,步骤S200可以包括如图4所示的方案或如图5所示的方案。
图4所示实施例具有与图2所示实施例相同的效果,图5所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
如图6所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S230、所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
S231、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S232、确定所述计算的误差值是否大于预设的第五阈值,如果否,执行步骤S233,如果是,重新执行步骤S230;
重新执行步骤S230表示,在重新执行的步骤S230中所启动的线程的数量和线程所执行的算法与前次执行步骤S230完全相同。
S233、根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
如图7所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S230、所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
S231、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S232、确定所述计算的误差值是否大于预设的第五阈值,如果否,执行步骤S233,如果是,执行步骤S234;
S233、根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
S234、确定步骤S230“控制电子设备同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,重新执行步骤S230。
本步骤中,确定步骤S230“控制电子设备同时启动执行不同算法的多个线程”的次数,即确定“控制电子设备同时启动执行不同算法的多个线程”的相同测试次数。
重新执行步骤S230表示,在重新执行的步骤S230中所启动的线程的数量和线程所执行的算法与前次执行步骤S230完全相同。
该第六阈值即为最大相同测试次数,例如为100次。
在实际应用中,步骤S200可以包括如图6所示的方案或如图7所示的方案。
图6所示实施例具有与图2所示实施例相同的效果,图7所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
如图8所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S240、所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
S241、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S242、确定所述计算的误差值是否大于预设的第七阈值,如果否,执行步骤S243,如果是,重新执行步骤S240;
重新执行步骤S240表示,在重新执行的步骤S240中所启动的线程的数量和线程所执行的算法与前次执行步骤S240完全相同。
S243、根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果。
如图9所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
S240、所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
S241、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
S242、确定所述计算的误差值是否大于预设的第七阈值,如果否,执行步骤S243,如果是,执行步骤S244;
S243、根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果。
S244、确定步骤S240“控制电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,重新执行步骤S240。
本步骤中,确定步骤S240“控制电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,即确定“控制电子设备在不同时刻分别启动执行不同算法的多个线程”的相同测试次数。
重新执行步骤S240表示,在重新执行的步骤S240中所启动的线程的数量和线程所执行的算法与前次执行步骤S240完全相同。
该第八阈值即为最大相同测试次数,例如为100次。
在实际应用中,步骤S200可以包括如图8所示的方案或如图9所示的方案。
图8所示实施例具有与图2所示实施例相同的效果,图9所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
需要说明的一点是,单算法有序测试模式的测试过程可以为图2或图3所示的过程,单算法无序测试模式的测试过程可以为图4或图5所示的过程,多算法有序测试模式的测试过程可以为图6或图7所示的过程,多算法无序测试模式的测试过程可以为图8或图9所示的过程。当步骤S200根据所述测试指令使用单算法有序测试模式和单算法无序测试模式对所述电子设备进行测试时,步骤S200可以包括单算法有序测试模式的测试过程和单算法无序测试模式的测试过程。也即具体的测试过程与所使用的测试模式相对应,各测试模式的先后顺序本发明不作限定。
下面公开一种本发明在实际应用中的方案,该方案依次进行单算法有序测试模式、单算法无序测试模式、多算法有序测试模式和多算法无序测试模式这四种测试模式的测试,最后对以上四种测试模式的测试结果进行加权平均运算,得到电子设备的测试结果。
首先进行单算法有序测试,它需要测试两个主要内容:一是CPU的整型数据运算能力Ssoi,二是CPU的浮点数据运算能力Ssof。
整型数据运算能力测试过程如下:
初始化线程创建所需要的参数并创建线程,初始化的参数包括算法名称、线程序号、线程启动次数等。同时启动多个线程,该多个线程中的每个线程都执行相同的算法,并且每个线程都多次执行该算法,如执行16次,对每个线程每次执行该算法的执行时间均进行记录和评分,并记录评分后的得分xt。假设启动3个线程,每个线程执行16次算法,对每个线程每次执行该算法的执行时间均进行记录和评分,那么一共将记录16*3即48个得分。
由于对于同一台电子设备而言,同时启动的线程数不同,每个线程所能使用的资源是有差别的,因此,为了提高测试结果的准确性,可选的,可以对每个线程每次执行该算法的得分进行修正,修正公式可以为x=nλxt,其中,n代表线程数,λ代表线程修正因子,xt代表测试得分,x代表修正后得分。具体的,λ可以为1-1.2。
可选的,在本次测试中所有线程中的算法执行完毕后,如执行16次,确定该算法在所有线程中得分的误差情况,如果误差过大,则重新测试,直到误差不高于预设阈值或相同测试次数达到最大相同测试次数为止。
在误差不高于预设阈值或误差高于预设阈值但相同测试次数达到最大相同测试次数后(如100次),对所记录的评分进行平均运算,得到电子设备处理该算法的平均得分。具体的,可以通过公式:
然后执行下一个算法,并继续对电子设备处理该算法的平均得分进行计算,直到最后执行完所有算法。在执行完所有算法后,对所有算法的平均得分进行加权几何平均运算,得到该电子设备的单算法有序测试中整型数据运算能力测试得分Ssoi。Ssoi的计算公式可以为
其中,xn代表某一算法的执行的平均分,αn代表此算法所占的权重,n代表所执行的算法数量,Ssoi代表CPU对于整型数据处理能力的得分。
整型数据算法可以包括:数组排序算法、字符串排序算法、位运算、模拟浮点运算、任务分配算法、国际数据加密算法和哈夫曼编码算法等。
在单算法有序测试模式下,计算得到浮点数据运算能力测试得分Ssof与整型数据运算能力测试过程基本相同,仅所使用的算法不同,浮点数据算法可以包括:傅立叶变换、神经网络算法和矩阵分解算法等。此外,还需说明的是,在浮点数据运算能力测试过程中,每个线程每次执行算法的执行时间对应的评分可以不必进行修正,可直接用于CPU浮点数据运算能力的得分的计算中。
本实施例中,接下来,将进行单算法无序测试,它同样需要测试两个主要内容:一是CPU的整型数据运算能力Ssdi,二是CPU的浮点数据运算能力Ssdf。单算法无序测试与单算法有序测试的过程基本相同,方便起见,仅对不同之处进行说明:
单算法无序测试中每个线程的启动时间是不同的,因此当某线程在某时刻启动开始执行某算法时,另一线程则需要等待直到该线程的启动时间达到才能启动开始执行该算法。具体的,可以按照启动时间先后顺序依次打开各线程。
接下来,进行多算法有序测试,它同样需要测试两个主要内容:一是CPU的整型数据运算能力Smoi,二是CPU的浮点数据运算能力Smof。多算法有序测试与单算法有序测试的过程基本相同,方便起见,仅对不同之处进行说明:
多算法有序测试中每个线程所执行的算法不同,因此,在每个算法在某线程中被执行一定次数后,可以首先计算该算法在该线程所执行次数的多个得分的误差值,当误差值不大于预设阈值或相同测试次数达到最大相同测试次数时,结束该算法的执行。计算该算法在该线程中执行的平均分计算公式可以为:
在所有整型数据算法执行完毕后,可以计算整型数据运算能力Smoi,计算公式为:
其中,xn代表某一算法的执行的平均分,αn代表此算法所占的权重,n代表整型数据算法数量,S代表加权几何平均分,也即CPU对于整型数据运算能力的得分。
在所有整型数据算法执行完毕后,可以计算浮点数据运算能力Smof,计算公式同样为:
其中,xn代表某一算法的执行的平均分,αn代表此算法所占的权重,n代表浮点数据算法数量,S代表加权几何平均分,也即CPU对于浮点数据运算能力的得分。
需要说明的是,对于多算法有序测试,由于同时启动多个线程,因此线程数将影响每个线程所能够使用的资源,因此,可以类似与单算法有序测试,对每个线程每次执行某算法的执行时间对应的评分进行修正。
然后进行多算法无序测试,它同样需要测试两个主要内容:一是CPU的整型数据运算能力Smdi,二是CPU的浮点数据运算能力Smdf。多算法无序测试与多算法有序测试的过程基本相同,方便起见,仅对不同之处进行说明:
多算法无序测试中每个线程的启动时间是不同的,因此当某线程在某时刻启动开始执行某算法时,另一线程则需要等待直到该线程的启动时间达到才能启动开始执行该算法。具体的,可以按照启动时间先后顺序依次打开各线程。在执行某算法前,可以首先获得算法名称,然后根据算法名称调用相应算法函数,执行该算法并获得得分,持续执行该算法直到相同测试次数达到最大相同测试次数或误差值不大于阈值为止。
最后,对上述四种测试模式的测试结果进行综合计算,得出电子设备的最终得分,以该得分作为电子设备的测试结果。
具体的,首先计算整型数据处理性能综合得分Si和浮点数据处理性能综合得分Sf:
其中,αsoi、αsdi、αmoi、αmdi分别为Ssoi、Ssdi、Smoi、Smdi对应的权重。
其中,αsof、αsdf、αmof、αmdf分别为Ssof、Ssdf、Smof、Smdf对应的权重。
然后根据整型数据处理性能综合得分Si和浮点数据处理性能综合得分Sf计算得到电子设备的最终评分S:
S=Si+Sf
与图1所示方法实施例相对应,本发明还提供了一种系统运算性能测试装置,应用于电子设备中,如图10所示,该装置可以包括:指令接收模块100、性能测试模块200、结果处理模块300和结果通知模块400,
指令接收模块100,用于接收用户的测试指令;
性能测试模块200,用于根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果,其中:
所述性能测试模块200在至少两种测试模式中的各测试模式中通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,所述性能测试模块200控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,所述性能测试模块200控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,所述性能测试模块200控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,所述性能测试模块200控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
结果处理模块300,用于对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
结果通知模块400,用于将所述系统运算性能的测试结果告知给用户。
本发明实施例中,单算法有序测试模式也可以被称为压力测试模式,由于该模式下电子设备同时启动执行相同算法的多个线程,因此会使电子设备的处理器处于满负荷运行状态,利于检测处理器的数据处理能力,以及系统对线程的调度能力。
单算法无序测试模式可以针对具有不同CPU核数的电子设备进行测试。不同CPU核数的电子设备的多个线程中不同线程的处理和运算能力表现是不同的,有的电子设备上运行单线程表现很好,但是运行多线程表现较差。而有的电子设备运行多线程表现很好,但是运行单线程表现较差。通过单算法无序测试模式就能检测电子设备对多线程的运算能力和线程调度能力。
多算法有序测试模式可以模拟电子设备真实的使用情况,有的算法会用到浮点数据处理,有的算法会用到整数数据处理,通过执行多种算法来检测电子设备的综合运算能力和线程调度能力。
多线程无序测试模式可以测试系统在综合使用情况下的数据运算和线程调度能力。由于在电子设备的实际使用中,各线程的启动时间并不相同,各线程所执行的算法也并不相同,因此多算法无序测试模式的测试结果更能体现电子设备在实际使用中的性能。
可选的,可以分别使用单算法有序测试模式、单算法无序测试模式、多算法有序测试模式和多算法无序测试模式对电子设备进行测试,由于不同的测试模式可以测试出电子设备在不同情况下的性能,因此测试较为全面,能够进一步提高测试的准确性和可信性。
本发明实施例提供的系统运算性能测试装置,使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。
可选的,所述单算法有序测试模式下,所述性能测试模块200控制每个线程执行同一种算法至少两次;
可选的,所述单算法无序测试模式下,所述性能测试模块200控制每个线程执行同一种算法至少两次;
可选的,所述多算法有序测试模式下,所述性能测试模块200控制每个线程执行同一种算法至少两次;
可选的,所述多算法无序测试模式下,所述性能测试模块200控制每个线程执行同一种算法至少两次。
当然,在以上四种测试模式中,可以有任意一种或任意多种测试模式下的每个线程执行同一种算法至少两次。
需要说明的一点是,进行测试的算法中包括两类,一类是整型数据算法,一类是浮点数据算法。其中,整型数据算法可以包括:数组排序算法、字符串排序算法、位运算、模拟浮点运算、任务分配算法、国际数据加密算法、哈夫曼编码算法中的任意种。浮点数据算法可以包括:傅立叶变换、神经网络算法、矩阵分解算法中的任意种。
可选的,在本发明的一个实施例中,结果处理模块300可以包括:加权模块和计算模块,
加权模块,用于根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
计算模块,用于根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
可选的,在本发明的一个实施例中,结果通知模块400可以将系统运算性能的测试结果在显示屏等输出装置上输出,或生成包含有电子设备系统运算性能的测试结果的文件并提示用户测试已完成,以方便用户将该测试结果发送到其他设备中,例如上传到网络侧设备。
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括单算法有序测试模块,
单算法有序测试模块可以包括:第一测试模块和第一误差模块,
第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
第一误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值并确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
该实施例可以根据测试结果计算误差值,当误差值较高时则再次启动线程进行测试,可以降低误差。
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括单算法有序测试模块,单算法有序测试模块包括:第一测试模块和第二误差模块,
第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
第二误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
该实施例也可以计算测试误差值,在误差值较高时,且相同测试次数低于最大相同测试次数时重复进行测试,可以降低误差值,避免无休止的重复测试。
下面的实施例的效果与上述两个实施例相同,不再赘述。
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括单算法无序测试模块,
单算法无序测试模块包括:第二测试模块和第三误差模块,
第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
第三误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括单算法无序测试模块,单算法无序测试模块包括:第二测试模块和第四误差模块,
第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
第四误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括多算法有序测试模块,
多算法有序测试模块包括:第三测试模块和第五误差模块,
第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
第五误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括多算法有序测试模块,多算法有序测试模块包括:第三测试模块和第六误差模块,
第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
第六误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括多算法无序测试模块,
多算法无序测试模块包括:第四测试模块和第七误差模块,
第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
第七误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
在本发明其他实施例提供的一种系统运算性能测试装置中,性能测试模块200可以包括多算法无序测试模块,多算法无序测试模块包括:第四测试模块和第八误差模块,
第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
第八误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种系统运算性能测试方法,其特征在于,运行于电子设备中,所述方法包括:
接收用户的测试指令;
根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果;
对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
将所述系统运算性能的测试结果告知用户;
其中:
所述至少两种测试模式中的各测试模式通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
2.根据权利要求1所述的方法,其特征在于,
所述单算法有序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述单算法无序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述多算法有序测试模式下,每个线程执行同一种算法至少两次;
和/或
所述多算法无序测试模式下,每个线程执行同一种算法至少两次。
3.根据权利要求1或2所述的方法,其特征在于,
所述单算法有序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第一阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
如果是,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第一阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
4.根据权利要求1或2所述的方法,其特征在于,
所述单算法无序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第三阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
如果是,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第三阈值;
如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
5.根据权利要求1或2所述的方法,其特征在于,
所述多算法有序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第五阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
如果是,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第五阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备控制所述电子设备同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
6.根据权利要求1或2所述的方法,其特征在于,
所述多算法无序测试模式下:
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第七阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
如果是,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
或者
在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
确定所述计算的误差值是否大于预设的第七阈值;
如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
如果是,确定所述“控制所述电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
7.根据权利要求1所述的方法,其特征在于,所述对各测试模式对应的所述模式测试结果进行数学运算处理,将数学运算处理后得到的结果作为系统运算性能的测试结果,包括:
根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
8.一种系统运算性能测试装置,其特征在于,应用于电子设备中,所述装置包括:指令接收模块、性能测试模块、结果处理模块和结果通知模块;
所述指令接收模块,用于接收用户的测试指令;
所述性能测试模块,用于根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果,其中:
所述性能测试模块在所述至少两种测试模式中的各测试模式中通过启动线程执行算法而获得模式测试结果;
所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
所述单算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行相同算法的多个线程;
所述单算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述多算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行不同算法的多个线程;
所述多算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述结果处理模块,用于对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
所述结果通知模块,用于将所述系统运算性能的测试结果告知给用户。
9.根据权利要求8所述的装置,其特征在于,
所述单算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述单算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述多算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
和/或
所述多算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次。
10.根据权利要求8或9所述的装置,其特征在于,所述性能测试模块包括单算法有序测试模块,
所述单算法有序测试模块包括:第一测试模块和第一误差模块,
所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述第一误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值并确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
或者
所述单算法有序测试模块包括:第一测试模块和第二误差模块,
所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
所述第二误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
11.根据权利要求8或9所述的装置,其特征在于,所述性能测试模块包括单算法无序测试模块,
所述单算法无序测试模块包括:第二测试模块和第三误差模块,
所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述第三误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
或者
所述单算法无序测试模块包括:第二测试模块和第四误差模块,
所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
所述第四误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
12.根据权利要求8或9所述的装置,其特征在于,所述性能测试模块包括多算法有序测试模块,
所述多算法有序测试模块包括:第三测试模块和第五误差模块,
所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述第五误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
或者
所述多算法有序测试模块包括:第三测试模块和第六误差模块,
所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
所述第六误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
13.根据权利要求8或9所述的装置,其特征在于,所述性能测试模块包括多算法无序测试模块,
所述多算法无序测试模块包括:第四测试模块和第七误差模块,
所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述第七误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
或者
所述多算法无序测试模块包括:第四测试模块和第八误差模块,
所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
所述第八误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
14.根据权利要求8所述的装置,其特征在于,所述结果处理模块,包括:加权模块和计算模块,
所述加权模块,用于根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
所述计算模块,用于根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310545594.XA CN103559113B (zh) | 2013-11-06 | 2013-11-06 | 系统运算性能测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310545594.XA CN103559113B (zh) | 2013-11-06 | 2013-11-06 | 系统运算性能测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103559113A true CN103559113A (zh) | 2014-02-05 |
CN103559113B CN103559113B (zh) | 2015-07-15 |
Family
ID=50013364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310545594.XA Active CN103559113B (zh) | 2013-11-06 | 2013-11-06 | 系统运算性能测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103559113B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869034A (zh) * | 2015-04-28 | 2015-08-26 | 阔地教育科技有限公司 | 一种基于在线课堂的压力测试方法及装置 |
CN105304140A (zh) * | 2014-06-13 | 2016-02-03 | 北京安兔兔科技有限公司 | 电子设备的存储器性能的测试方法及装置 |
CN105446848A (zh) * | 2014-06-13 | 2016-03-30 | 北京安兔兔科技有限公司 | 电子设备的数据处理性能的测试方法及装置 |
CN106250298A (zh) * | 2016-07-15 | 2016-12-21 | 珠海市魅族科技有限公司 | 一种测试方法及装置 |
CN110427268A (zh) * | 2019-08-01 | 2019-11-08 | 浪潮电子信息产业股份有限公司 | 一种加速器的性能影响因素的侦测方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388381A (zh) * | 2001-05-30 | 2003-01-01 | 大冈科技股份有限公司 | 电子元件能量冲击测试系统及方法 |
US20090024873A1 (en) * | 2007-07-18 | 2009-01-22 | Sandip Bag | System and Method for Increasing Error Checking Performance by Calculating CRC Calculations After Multiple Test Patterns for Processor Design Verification and Validation |
CN102799489A (zh) * | 2012-07-19 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 对终端进行控制的方法、装置及终端 |
-
2013
- 2013-11-06 CN CN201310545594.XA patent/CN103559113B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388381A (zh) * | 2001-05-30 | 2003-01-01 | 大冈科技股份有限公司 | 电子元件能量冲击测试系统及方法 |
US20090024873A1 (en) * | 2007-07-18 | 2009-01-22 | Sandip Bag | System and Method for Increasing Error Checking Performance by Calculating CRC Calculations After Multiple Test Patterns for Processor Design Verification and Validation |
CN102799489A (zh) * | 2012-07-19 | 2012-11-28 | 腾讯科技(深圳)有限公司 | 对终端进行控制的方法、装置及终端 |
Non-Patent Citations (2)
Title |
---|
肖海浪: "基于用户体验的移动终端整机性能评测研究", 《移动通信 》 * |
龙志军: "硬件多线程技术在通信软件性能优化中的应用", 《实践与经验》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105304140A (zh) * | 2014-06-13 | 2016-02-03 | 北京安兔兔科技有限公司 | 电子设备的存储器性能的测试方法及装置 |
CN105446848A (zh) * | 2014-06-13 | 2016-03-30 | 北京安兔兔科技有限公司 | 电子设备的数据处理性能的测试方法及装置 |
CN105304140B (zh) * | 2014-06-13 | 2018-07-13 | 北京安兔兔科技有限公司 | 电子设备的存储器性能的测试方法及装置 |
CN104869034A (zh) * | 2015-04-28 | 2015-08-26 | 阔地教育科技有限公司 | 一种基于在线课堂的压力测试方法及装置 |
CN104869034B (zh) * | 2015-04-28 | 2018-04-17 | 阔地教育科技有限公司 | 一种基于在线课堂的压力测试方法及装置 |
CN106250298A (zh) * | 2016-07-15 | 2016-12-21 | 珠海市魅族科技有限公司 | 一种测试方法及装置 |
CN106250298B (zh) * | 2016-07-15 | 2019-06-11 | 珠海市魅族科技有限公司 | 一种测试方法及装置 |
CN110427268A (zh) * | 2019-08-01 | 2019-11-08 | 浪潮电子信息产业股份有限公司 | 一种加速器的性能影响因素的侦测方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103559113B (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559113B (zh) | 系统运算性能测试方法及装置 | |
Poovey et al. | A benchmark characterization of the EEMBC benchmark suite | |
Yang et al. | Performance optimization using partitioned SpMV on GPUs and multicore CPUs | |
US11216250B2 (en) | Dynamic, variable bit-width numerical precision on field-programmable gate arrays for machine learning tasks | |
CN105139282B (zh) | 一种电网指标数据处理方法、装置以及计算设备 | |
Shelepov et al. | Scheduling on heterogeneous multicore processors using architectural signatures | |
CN105446885A (zh) | 一种基于需求的回归测试用例优先级排序技术 | |
CN102253919A (zh) | 基于gpu和cpu协同运算的并行数值模拟方法和系统 | |
CN110706147B (zh) | 图像处理的环境确定方法、装置、电子设备和存储介质 | |
CN111158874A (zh) | 数据处理方法和装置、电子设备及存储介质 | |
CN111738488A (zh) | 一种任务调度方法及其装置 | |
Griewank et al. | On the numerical stability of algorithmic differentiation | |
Fan et al. | An effective approximation algorithm for the malleable parallel task scheduling problem | |
Martínez et al. | Performance improvement of stencil computations for multi-core architectures based on machine learning | |
CN105242954A (zh) | 一种虚拟cpu与物理cpu之间的映射方法及电子设备 | |
CN113886080A (zh) | 高性能集群任务调度方法、装置、电子设备及存储介质 | |
Chirigati et al. | Evaluating parameter sweep workflows in high performance computing | |
CN106095669B (zh) | 基于调度序列约简的并行程序测试方法 | |
CN114021733B (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
Feldt | Genetic programming as an explorative tool in early software development phases | |
CN115904724A (zh) | 线程分配方法、装置、存储介质及计算机设备 | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
US9384016B2 (en) | Method of estimating program speed-up with highly parallel architectures | |
Youness et al. | A new hardware/software partitioning technique | |
CN112801461B (zh) | 石油区块的勘探规划指标确定方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |