系统运算性能测试方法及装置制造方法

文档序号:6518040阅读:202来源:国知局
系统运算性能测试方法及装置制造方法
【专利摘要】本发明实施例提供的一种系统运算性能测试方法及装置,可以使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。
【专利说明】系统运算性能测试方法及装置
【技术领域】
[0001]本发明涉及系统测评【技术领域】,特别是涉及系统运算性能测试方法及装置。
【背景技术】
[0002]随着科技的发展,手机、笔记本电脑、平板电脑等电子设备的功能也日益强大。目前,各种应用软件的不断涌现,众多的程序、服务都对电子设备的系统运算性能提出了更高的要求。所谓“系统运算性能”,是指电子设备的系统整体的运算性能表现,其中,“系统”是指CPU、内存,输入输出I/O等硬件和在这些硬件上运行的操作系统的总和。电子设备的系统运算性能越强,电子设备的运算速度会越快,也就是说,电子设备执行单个或者同时执行多个应用程序会更加的流畅。
[0003]目前,为了让用户更好的了解电子设备的系统运算性能,技术人员开发出了系统测评软件(也可称为“跑分”软件)。这种系统测评软件在电子设备上运行时,可以通过一定的测试方法对电子设备的系统运算性能进行测试,并将测试结果告知用户,从而帮助用户了解电子设备的系统运算性能的高低情况。
[0004]现有技术中,系统测评软件通常采用控制电子设备启动线程执行算法的方式对系统运算性能进行测试,但这种测试方法一般采用启动单一线程或者启动多个线程执行单一算法的方式对系统运算性能进行测试。在电子设备的实际使用过程中,电子设备运行应用程序的数量以及时间是随机的,电子设备中启动的线程数和运算的算法的数量也是变化不定的,因此采用现有的测试方法对系统运算性能测试后的测试结果并不能体现出电子设备的真实情况,准确性较低。

【发明内容】

[0005]本发明实施例的目的在于提供一种系统运算性能测试方法及装置,以实现有效提高测试结果准确性的目的。
[0006]为达到上述目的,本发明实施例公开了一种系统运算性能测试方法,运行于电子设备中,所述方法包括:
[0007]接收用户的测试指令;
[0008]根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果;
[0009]对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
[0010]将所述系统运算性能的测试结果告知用户;
[0011]其中:
[0012]所述至少两种测试模式中的各测试模式通过启动线程执行算法而获得模式测试结果;[0013]所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
[0014]所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
[0015]所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0016]所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0017]所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
[0018]可选的,所述单算法有序测试模式下,每个线程执行同一种算法至少两次;
[0019]和/或
[0020]所述单算法无序测试模式下,每个线程执行同一种算法至少两次;
[0021]和/或
[0022]所述多算法有序测试模式下,每个线程执行同一种算法至少两次;
[0023]和/ 或
[0024]所述多算法无序测试模式下,每个线程执行同一种算法至少两次。
[0025]可选的,所述单算法有序测试模式下:
[0026]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0027]确定所述计算的误差值是否大于预设的第一阈值;
[0028]如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
[0029]如果是,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
[0030]或者
[0031]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0032]确定所述计算的误差值是否大于预设的第一阈值;
[0033]如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
[0034]如果是,确定所述“控制所述电子设备同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
[0035]可选的,所述单算法无序测试模式下:
[0036]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0037]确定所述计算的误差值是否大于预设的第三阈值;[0038]如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
[0039]如果是,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
[0040]或者
[0041]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0042]确定所述计算的误差值是否大于预设的第三阈值;
[0043]如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
[0044]如果是,确定所述“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
[0045]可选的,所述多算法有序测试模式下:
[0046]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0047]确定所述计算的误差值是否大于预设的第五阈值;
[0048]如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
[0049]如果是,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
[0050]或者
[0051]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0052]确定所述计算的误差值是否大于预设的第五阈值;
[0053]如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
[0054]如果是,确定所述“控制所述电子设备控制所述电子设备同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
[0055]可选的,所述多算法无序测试模式下:
[0056]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0057]确定所述计算的误差值是否大于预设的第七阈值;
[0058]如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
[0059]如果是,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
[0060]或者[0061]在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试
误差值;
[0062]确定所述计算的误差值是否大于预设的第七阈值;
[0063]如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果;
[0064]如果是,确定所述“控制所述电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
[0065]可选的,所述对各测试模式对应的所述模式测试结果进行数学运算处理,将数学运算处理后得到的结果作为系统运算性能的测试结果,包括:
[0066]根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
[0067]根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
[0068]为达到上述目的,本发明实施例公开了一种系统运算性能测试装置,应用于电子设备中,所述装置包括:指令接收模块、性能测试模块、结果处理模块和结果通知模块;
[0069]所述指令接收模块,用于接收用户的测试指令;
[0070]所述性能测试模块,用于根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果,其中:
[0071]所述性能测试模块在所述至少两种测试模式中的各测试模式中通过启动线程执行算法而获得模式测试结果;
[0072]所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
[0073]所述单算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行相同算法的多个线程;
[0074]所述单算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0075]所述多算法有序测试模式下,所述性能测试模块控制所述电子设备同时启动执行不同算法的多个线程;
[0076]所述多算法无序测试模式下,所述性能测试模块控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
[0077]所述结果处理模块,用于对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果;
[0078]所述结果通知模块,用于将所述系统运算性能的测试结果告知给用户。
[0079]可选的,所述单算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
[0080]和/ 或
[0081]所述单算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
[0082]和/ 或
[0083]所述多算法有序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次;
[0084]和/ 或
[0085]所述多算法无序测试模式下,所述性能测试模块控制每个线程执行同一种算法至少两次。
[0086]可选的,所述性能测试模块包括单算法有序测试模块,
[0087]所述单算法有序测试模块包括:第一测试模块和第一误差模块,
[0088]所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
[0089]所述第一误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值并确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试;
[0090]或者
[0091]所述单算法有序测试模块包括:第一测试模块和第二误差模块,
[0092]所述第一测试模块,用于在所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
[0093]所述第二误差模块,用于在所述第一测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第一阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,触发所述第一测试模块重新控制所述电子设备同时启动执行相同算法的所述多个线程以进行重新测试。
[0094]可选的,所述性能测试模块包括单算法无序测试模块,
[0095]所述单算法无序测试模块包括:第二测试模块和第三误差模块,
[0096]所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0097]所述第三误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试;
[0098]或者[0099]所述单算法无序测试模块包括:第二测试模块和第四误差模块,
[0100]所述第二测试模块,用于在所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0101]所述第四误差模块,用于在所述第二测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第三阈值,如果否,根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,触发所述第二测试模块重新控制所述电子设备在不同时刻分别启动执行相同算法的所述多个线程以进行重新测试。
[0102]可选的,所述性能测试模块包括多算法有序测试模块,
[0103]所述多算法有序测试模块包括:第三测试模块和第五误差模块,
[0104]所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0105]所述第五误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试;
[0106]或者
[0107]所述多算法有序测试模块包括:第三测试模块和第六误差模块,
[0108]所述第三测试模块,用于在所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0109]所述第六误差模块,用于在所述第三测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第五阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果,如果是,确定所述电子设备“同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,触发所述第三测试模块重新控制所述电子设备同时启动执行不同算法的所述多个线程以进行重新测试。
[0110]可选的,所述性能测试模块包括多算法无序测试模块,
[0111]所述多算法无序测试模块包括:第四测试模块和第七误差模块,
[0112]所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
[0113]所述第七误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试;
[0114]或者
[0115]所述多算法无序测试模块包括:第四测试模块和第八误差模块,[0116]所述第四测试模块,用于在所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程;
[0117]所述第八误差模块,用于在所述第四测试模块控制所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值,确定所述计算的误差值是否大于预设的第七阈值,如果否,根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果,如果是,确定所述电子设备“在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,触发所述第四测试模块重新控制所述电子设备在不同时刻分别启动执行不同算法的多个线程以进行重新测试。
[0118]可选的,所述结果处理模块,包括:加权模块和计算模块,
[0119]所述加权模块,用于根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
[0120]所述计算模块,用于根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
[0121]本发明实施例提供的系统运算性能测试方法及装置,使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
【专利附图】

【附图说明】
[0122]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0123]图1为本发明实施例提供的一种系统运算性能测试方法的流程图;
[0124]图2为本发明实施例提供的另一种系统运算性能测试方法中进行单算法有序测试的流程图;
[0125]图3为本发明实施例提供的另一种系统运算性能测试方法中进行单算法有序测试的流程图;
[0126]图4为本发明实施例提供的另一种系统运算性能测试方法中进行单算法无序测试的流程图;
[0127]图5为本发明实施例提供的另一种系统运算性能测试方法中进行单算法无序测试的流程图;
[0128]图6为本发明实施例提供的另一种系统运算性能测试方法中进行多算法有序测试的流程图;
[0129]图7为本发明实施例提供的另一种系统运算性能测试方法中进行多算法有序测试的流程图;
[0130]图8为本发明实施例提供的另一种系统运算性能测试方法中进行多算法无序测试的流程图;
[0131]图9为本发明实施例提供的另一种系统运算性能测试方法中进行多算法无序测试的流程图;
[0132]图10为本发明实施例提供的一种系统运算性能测试装置的结构示意图。
【具体实施方式】
[0133]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0134]如图1所示,本发明实施例提供的一种系统运算性能测试方法,运行于电子设备中,该方法可以包括:
[0135]S100、接收用户的测试指令;
[0136]具体的,可以在电子设备的屏幕上显示一交互界面,该交互界面上设置有按键等用于接收用户的测试指令的接口,用户可通过点击该按键,下达测试指令。
[0137]S200、根据所述测试指令使用至少两种测试模式对所述电子设备进行测试,获得所述至少两种测试模式中的各测试模式对应的模式测试结果,所述模式测试结果包括CPU整型运算性能测试结果和CPU浮点运算性能测试结果;
[0138]其中:
[0139]所述至少两种测试模式中的各测试模式通过启动线程执行算法而获得模式测试结果;
[0140]所述至少两种测试模式中包括单算法有序测试模式,所述至少两种测试模式中还包括单算法无序测试模式、多算法有序测试模式和多算法无序测试模式中的至少一个测试模式;
[0141]所述单算法有序测试模式下,控制所述电子设备同时启动执行相同算法的多个线程;
[0142]所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0143]所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0144]所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
[0145]本发明实施例中,使用至少两种测试模式对电子设备进行测试,而且所使用的测试模式的针对性不同。
[0146]其中,单算法有序测试模式也可以被称为压力测试模式,在该测试模式下,电子设备会同时启动执行相同算法的多个线程,因此会使电子设备的处理器处于满负荷运行状态,利于检测处理器的数据处理能力,以及系统对线程的调度能力。[0147]单算法无序测试模式可以针对具有不同CPU核数的电子设备进行测试。不同CPU核数的电子设备对于线程的处理和运算能力的表现是不同的,有的电子设备上运行单线程表现很好,但是运行多线程表现较差。而有的电子设备运行多线程表现很好,但是运行单线程表现较差。而通过单算法无序测试模式能够检测电子设备对多线程的运算能力和线程调度能力。
[0148]在电子设备的使用过程中,可能同时执行多种算法,有的算法会用到浮点数据处理,有的算法会用到整数数据处理。而多算法有序测试模式就可以模拟电子设备这种真实的使用情况,通过同时启动多个线程执行多种算法来检测电子设备的综合运算能力和线程调度能力。
[0149]由于在电子设备的实际使用中,各线程的启动时间可能并不相同,各线程所执行的算法也可能并不相同。而多线程无序测试模式通过在不同时刻分别启动执行不同算法的多个线程,可以测试系统在电子设备的综合使用情况下的数据运算和线程调度能力,其测试结果更能体现电子设备在实际使用中的性能。
[0150]可选的,本发明实施例中,可以分别使用单算法有序测试模式、单算法无序测试模式、多算法有序测试模式和多算法无序测试模式对电子设备进行测试,由于不同的测试模式的针对性不同,因此可以测试出电子设备在不同使用情况下的系统运算性能,因此测试较为全面,能够进一步提高测试的准确性和可信性。
[0151]需要说明的一点是,本步骤中,无论那种测试模式,进行测试所采用的算法中包括两类算法,一类是整型数据算法,一类是浮点数据算法。整型数据算法可以测试CPU整型运算性能,浮点数据算法可以测试CPU浮点运算性能。因此,每种模式测试结果中包括分别与算法对应的两种模式测试结果,分别为CPU整型运算性能测试结果和CPU浮点运算性能测试结果。
[0152]其中,整型数据算法可以包括:数组排序算法、字符串排序算法、位运算、模拟浮点运算、任务分配算法、国际数据加密算法、哈夫曼编码算法中的任意种。浮点数据算法可以包括:傅立叶变换、神经网络算法、矩阵分解算法中的任意种。本领域技术人员可以对算法进行选择。
[0153]在单算法有序测试模式下,电子设备同时启动执行相同算法的多个线程,该相同的算法可以为整型数据算法,也可以为浮点数据算法。由于需要得到CPU整型运算性能测试结果和CPU浮点运算性能测试结果,因此,在单算法有序测试模式下,需要电子设备同时启动执行相同的整型数据算法的多个线程进行CPU整型运算性能的测试,还需要电子设备同时启动执行相同的浮点数据算法的多个线程进行CPU浮点运算性能的测试。当然,整型数据算法和浮点数据算法的执行顺序本发明不做限定。
[0154]同样,在单算法无序测试模式下,电子设备在不同时刻分别启动执行相同算法的多个线程,该算法可以为整型数据算法,也可以为浮点数据算法。在单算法无序测试模式下,需要电子设备在不同时刻分别启动执行相同的整型数据算法的多个线程进行CPU整型运算性能的测试,还需要电子设备在不同时刻分别启动执行相同的浮点数据算法进行CPU浮点运算性能的测试。
[0155]而对于多算法有序测试模式,电子设备同时启动执行不同算法的多个线程,这些不同的算法可以包括整型数据算法和浮点数据算法。这样,一次执行“同时启动执行不同算法的多个线程”,就可以得到浮点运算和整型运算两种结果。
[0156]同样,对于多算法无序测试模式,电子设备在不同时刻分别启动执行不同算法的多个线程,这些不同的算法可以包括整型数据算法和浮点数据算法。这样,一次执行“在不同时刻分别启动执行不同算法的多个线程”,就可以得到浮点运算和整型运算两种结果。
[0157]即:对于多算法有序测试模式和单算法无序测试模式,所启动的多个线程中的部分线程可以执行整型数据算法,另一部分线程可以执行浮点数据算法。执行整型数据算法的部分线程中的每个线程所执行的整型数据算法可以为不同的整型数据算法,执行浮点数据算法的部分线程中的每个线程所执行的浮点数据算法也可以为不同的浮点数据算法。
[0158]本发明实施例中,在采用各测试模式进行测试时,将获取各线程中算法的执行时间,进而根据每个线程中算法的执行时间,得到模式测试结果。具体而言,将根据用于执行整型数据算法的线程中的整型数据算法的执行时间,得到CPU整型运算性能测试结果,根据用于执行浮点数据算法的线程中的浮点数据算法的执行时间,得到CPU浮点运算性能测试结果。
[0159]需要强调的是,每个线程从启动到结束所持续的时间为线程运行时间,而“算法的执行时间”是指线程运行时间中用于执行算法而消耗的时间,线程运行时间中包括算法的执行时间但长于算法的执行时间。
[0160]具体地,在各测试模式下,每一次测试都会获得每一次测试的结果。这里的“每一次测试”是指,对于单算法有序测试模式,同时启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于单算法无序测试模式,在不同时刻分别启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法有序测试模式,同时启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法无序测试模式,在不同时刻分别启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试。在改变算法后,各测试模式进行下一次的测试。
[0161]在单算法有序测试模式和单算法无序测试模式下,由于每次测试所启动的线程执行相同的算法,但需要获得整型和浮点两种测试结果,因此,单算法有序测试模式和单算法无序测试模式中至少需要进行两次测试,一次执行整形数据算法,一次执行浮点数据算法。而对于多算法有序测试模式和多算法无序测试模式,由于每次测试所启动的线程执行不同的算法,该不同的算法可以包括整型数据算法和浮点数据算法,因此,多算法有序测试模式和多算法无序测试模式可进行一次测试即可,一次测试即可获得整型和浮点两种测试结果,当然,也可以进行多次测试。
[0162]在各测试模式下,在每一次测试中,可以获得所启动的多个线程中各个线程执行某算法的时间(即算法的执行时间),进而对每一个时间进行评分,即通过一定的对应关系将时间换算成评分。然后对这些评分进行数学运算,具体可以是对这些评分中执行整型数据算法的时间的对应的评分进行数学运算(例如平均运算)和执行浮点数据算法的时间的对应的评分进行数学运算(例如平均运算)。上述的处理可以在每一次测试后就进行,也可在整个测试模式的所有测试完成后进行。进而,根据各次测试的执行整型数据算法的时间的对应的评分进行数学运算的结果,再次进行数学运算,例如加权平均计算,获得该测试模式的模式测试结果中的CPU整型运算性能测试结果,根据各次测试的执行浮点数据算法的时间对应的评分进行数学运算的结果,再次进行数学运算,例如加权平均计算,获得该测试模式的模式测试结果中的CPU浮点运算性能测试结果。
[0163]S300、对所述各测试模式对应的模式测试结果进行数学运算处理,将所述数学运算处理后得到的结果作为系统运算性能的测试结果。
[0164]对所获得的不同测试模式下的模式测试结果进行的数学运算处理可以有多种,如算数平均(又称为相加平均)、几何平均(又称为相乘平均)、调和平均等。另外,还可以为不同测试模式下的模式测试结果设置权值,并带入上述数学运算处理中。
[0165]其中,步骤S300可以包括:
[0166]根据各测试模式对应的CPU整型运算性能的加权值,对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算,根据各测试模式对应的CPU浮点运算性能的加权值,对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算;
[0167]根据所述对各测试模式的CPU整型运算性能测试结果进行加权几何平均运算后得到的运算值和所述对各测试模式的CPU浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
[0168]分别对各测试模式的CPU整型运算性能的加权值进行运算可以得到使用多个测试模式后的该电子设备的CPU整型运算性能评分。同理,分别对各测试模式的CPU浮点运算性能的加权值进行运算可以得到使用多个测试模式后的该电子设备的CPU浮点运算性能评分。最后再对该电子设备的CPU浮点运算性能评分及CPU整型运算性能评分进行综合计算即可。
[0169]S400、将所述系统运算性能的测试结果告知用户。
[0170]具体的,可以将系统运算性能的测试结果在显示屏等输出装置上输出,或生成包含有电子设备系统运算性能的测试结果的文件并提示用户测试已完成,以方便用户将该测试结果发送到其他设备中,例如上传到网络侧设备。
[0171]本发明实施例提供的系统运算性能测试方法,使用至少两种测试模式对电子设备进行测试,并根据各测试模式的模式测试结果计算得到系统运算性能的测试结果。由于不同的测试模式的针对性不同,因此本发明可以更全面的对电子设备的系统运算性能进行测试,所得到的测试结果也更加准确。
[0172]进一步需要说明的是,可选的,在本发明实施例所采用的各测试模式下,每个线程可以执行同一种算法至少两次。即,本发明实施例中的测试方法中采用了单算法有序测试模式,在这种模式下,每个线程可执行同一种算法一次或者至少两次。而如果本发明实施例中的测试方法中采用了单算法无序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。如果本发明实施例中的测试方法中采用了多算法有序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。同样,如果本发明实施例中的测试方法中采用了多算法无序测试模式下,在这种模式下,每个线程可执行同一种算法一次,也可执行同一种算法至少两次。
[0173]本发明实施例中,“每个线程可以执行同一种算法至少两次”是指每一个用于执行某算法的线程在运行的过程中执行该算法的次数为至少两次。当然,在以上四种测试模式中,可以有任意一种或任意多种测试模式下的每个线程执行同一种算法至少两次。举例说明:
[0174]举例1:单算法有序测试模式下,第一次同时启动三个线程,本次启动中,这三个线程都执行同一种算法:算法I。第一个线程执行算法I至少两次,第二个线程执行算法I至少两次,第三个线程执行算法I至少两次。然后第二次同时启动三个线程,这三个线程都执行同一种算法:算法2至少两次。然后第三次启动三个线程,这三个线程都执行同一种算法:算法3至少两次。可以看出,单算法有序测试模式下,无论是第一次启动、第二次启动还是第三次启动,每次启动过程中,每个线程都执行一种算法至少两次。
[0175]在多算法有序测试模式和多算法无序测试模式下,每次启动多个线程执行算法的过程中,这多个线程中所执行的算法不相同,例如:举例2:多算法有序测试模式下,第一次同时启动三个线程,第一个线程执行算法I至少两次,第二个线程执行算法2至少两次,第三个线程执行算法3至少两次。第二次同时启动三个线程,第一个线程执行算法4至少两次,第二个线程执行算法5至少两次,第三个线程执行算法6至少两次。但是,对于一个线程来说,该线程至少两次执行的算法是相同的。
[0176]需要说明的一点是,进行测试的算法中包括两类,一类是整型数据算法,一类是浮点数据算法。例如对于单算法有序测试模式和单算法无序测试模式,所启动执行相同算法的多个线程可以执行整型数据算法中的一种,例如举例I中的算法I为整型数据算法,所启动执行相同算法的多个线程可以执行浮点数据算法中的一种,例如举例I中的算法2为浮点数据算法。当然,整型数据算法和浮点数据算法的执行顺序本发明不做限定。
[0177]再如对于多算法有序测试模式和多算法无序测试模式,可以在一次测试启动中就在所启动的多个线程中分别执行整型数据算法和浮点数据算法。即:所启动的执行不同算法的多个线程中的部分线程可以执行整型数据算法,另一部分线程可以执行浮点数据算法,例如举例2中的算法1、2为整型数据算法,举例2中的算法3为浮点数据算法。执行整型数据算法的部分线程中的每个线程所执行的整型数据算法可以为不同的整型数据算法,执行浮点数据算法的部分线程中的每个线程所执行的浮点数据算法也可以为不同的浮点数据算法。
[0178]为了避免由于在测试过程中出现异常而导致模式测试结果不准确的问题,提高测试结果的准确率,可以对每一次测试的测试结果进行误差判断。这里的“每一次测试”是指,对于单算法有序测试模式,同时启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于单算法无序测试模式,在不同时刻分别启动执行相同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法有序测试模式,同时启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试;同样,对于多算法无序测试模式,在不同时刻分别启动执行不同算法的多个线程,这多个线程运行结束后,完成一次测试。
[0179]具体的,单算法有序测试模式和单算法无序测试模式下,每一次测试完成后,根据本次测试下的所有线程对应的测试结果进行误差值计算。其中,所有线程对应的测试结果可以为这些线程中算法的执行时间对应的评分。具体的,误差值可以为每次测试中得到的算法的执行时间对应的评分的标准方差与这些评分的平均值的比值。这样,由于每次测试中所有线程所执行的算法相同,一次测试后,将得到一个误差值。如果该误差值不大于预设阈值,表明本次测试有效,可以使用本次测试得到的测试结果确定模式测试结果;当该误差值大于预设阈值时,重复本次测试(即所启动的线程和线程所执行的算法与本次测试完全相同),并根据重复测试下的所有线程的测试结果进行误差值计算,以此类推,直至误差值低于预设阈值。其中,预设阈值可以0.3-0.5。
[0180]例如,单算法有序测试模式或单算法无序测试模式下,一次测试启动执行算法A的三个线程,并且每个线程执行算法A五次。在这次测试结束后,每个线程执行算法A —次得到I个评分,每个线程得到5个评分,本次测试共得到15个评分。在计算误差值时,将计算出这15个评分的标准方差和这15个评分的平均值,并确定出两者的比值。
[0181]多算法有序测试模式和多算法无序测试模式下,每一次测试完成后,根据本次测试下的各线程对应的测试结果进行误差值计算。其中,各线程对应的测试结果包括执行每一种算法的线程对应的测试结果,该测试结果可以为该线程中算法的执行时间对应的评分。由于所有线程所执行的算法均不相同,本次测试后,每一个线程均对应一个误差值。假设本次测试启动4个线程,每个线程将对应一个误差值,共4个误差值。其中,每个线程对应的误差值可以为该线程得到的算法的执行时间对应的评分的标准方差与这些评分的平均值的比值。而一次测试后,将得到与线程数目相同数目的误差值。如果这些误差值中的所有值都不大于预设阈值,表明本次测试有效,可以使用本次测试得到的测试结果确定模式测试结果;当这些误差值中的至少一个误差值大于其对应的预设阈值时,重复本次测试(即所启动的线程和线程所执行的算法与本次测试完全相同),并根据重复测试下的所有线程的测试结果进行误差值计算,以此类推,直至所有误差值均低于预设阈值。其中,预设阈值可以0.3-0.5。
[0182]例如:举例3:多算法无序测试模式下,第一次测试分别在不同时刻启动两个线程,第一个线程执行数组排序算法(整型数据算法中的一种)16次,第二个线程执行傅立叶变换算法(浮点数据算法中的一种)16次。那么在本次测试完成后,获得第一个线程每次执行数组排序算法所用的时间,并对其进行评分,共16个评分,在本次测试完成后,获得第二个线程每次执行傅里叶变换算法所用的时间,并对其进行评分,也是16个评分。在进行误差值计算时,根据第一个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,从而获得误差值,假设该误差值小于预设阈值。在进行误差值计算时,根据第二个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,从而获得误差值,假设该误差值大于预设阈值。由于一个误差值大于预设阈值,将再次重复进行测试,本次重复测试与第一次测试中使用的算法相同,同样使用两个线程:第二次分别在不同时刻启动两个线程,第一个线程执行数组排序算法16次,第二个线程执行傅里叶变换算法16次。那么在本次启动的这两个线程中的数组排序算法和傅里叶变换算法全部执行完毕后,获得本次测试启动中,第一个线程每次执行数组排序算法所用的时间,并对其进行评分,共16个评分,获得本次测试启动中,第二个线程每次执行傅里叶变换算法所用的时间,并对其进行评分,也是16个评分。进而对本次测试的误差值进行计算:根据第一个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,获得执行数组排序算法的误差值,该误差值小于预设阈值。根据第二个线程所对应的16个评分进行数学运算计算误差值,即计算这16个评分的标准方差和这16个评分的平均值的比值,获得执行傅里叶变换算法的误差值,该误差值小于预设阈值。
[0183]由于第二次测试的两个误差值均小于预设阈值,因此可以根据第二次测试的评分得到多算法无序测试模式的模式测试结果,具体的:对第二次测试的第一个线程所对应的16个评分进行数学运算后可以得到多算法无序测试模式下第二次测试启动所对应的CPU整型运算性能测试结果,对第二次测试的第二个线程所对应的16个评分进行数学运算后可以得到多算法无序测试模式下第二次测试启动所对应的CPU浮点运算性能测试结果。将第二次测试启动所对应的CPU整型运算性能测试结果和第二次测试启动所对应的CPU浮点运算性能测试结果作为多算法无序测试模式的模式测试结果。也即:各测试模式的模式测试结果可以由各测试模式下的CPU整型运算性能测试结果和各测试模式下的CPU浮点运算性能测试结果组成。
[0184]进一步的,为了避免无休止的重复测试,可以设置一个最大相同测试次数。为了便于表述和理解,这里引入“相同测试次数”的概念。对于单算法有序测试模式,电子设备首次同时启动执行相同算法的多个线程,例如算法1,在这多个线程运行结束后,相同测试次数增加一次,在算法不变的情况下,如果再次重复上述的首次测试,即再次同时启动执行算法I的多个线程进行测试,相同测试次数再增加一次,以此类推。
[0185]对于单算法无序测试模式,电子设备首次在不同时刻分别启动执行相同算法的多个线程进行测试,假设为算法1,在这多个线程运行结束后,相同测试次数增加一次,在算法不变的情况下,如果再次重复上述的首次测试,即再次在不同时刻分别启动执行算法I的多个线程进行测试,相同测试次数再增加一次。
[0186]同样,对于多算法有序测试模式,电子设备首次同时启动执行不同算法的多个线程进行测试,例如,执行算法1、2、3……的多个线程,在这多个线程运行结束后,相同测试次数增加一次。在算法不变的情况下,如果再次重复上述的首次测试,即再次同时启动执行算法1、2、3……的多个线程进行测试,相同测试次数再增加一次。
[0187]同样,对于多算法无序测试模式,电子设备首次在不同时刻分别启动执行不同算法的多个线程进行测试,例如,执行算法1、2、3……的多个线程,在这多个线程运行结束后,相同测试次数增加一次。在算法不变的情况下,如果再次重复上述的首次测试,即再次在不同时刻分别启动执行算法1、2、`3……的多个线程进行测试,相同测试次数再增加一次。
[0188]在各测试模式下,如果每一次测试后,误差值不满足测试结果有效的要求,即至少一个误差值大于预先设定的阈值,可以进一步判断一下本次测试对应的“相同测试次数”是否大于预先设定的最大相同测试次数,例如100次,即确定一下是否已经重复测试了很多次,该次数超过预先设定的最大相同测试次数。如果否,将重复本次测试。如果是,可停止测试,或者弹出提示,提示用户停止测试或者选择其他时间另行测试。
[0189]如图2所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0190]S210、所述单算法有序测试模式下,控制电子设备同时启动执行相同算法的所述多个线程。
[0191]S211、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值。
[0192]其中,每个线程对应的测试结果包括每个线程对应的算法的执行时间对应的评分,该评分可以为执行时间本身,也可以与执行时间不同但相对应。如果一个线程执行一个算法一次,得到一个评分,而如果一个线程执行算法至少两次,每次执行算法将得到一个评分,可得到至少两个得分,例如,一个线程执行算法A三次,得到3个评分。[0193]S212、确定所述计算的误差值是否大于预设的第一阈值,如果否,执行步骤S213,如果是,重新执行步骤S210。
[0194]具体的,确定误差值的方式有多种,如:计算每个线程的算法执行时间对应的评分的标准方差与执行时间对应的评分的平均值的比值,将该比值作为误差值。可选的,第一阈值可以为0.3至0.5中的任意数值。可参见前文描述,这里不再赘述。
[0195]其中,重新执行步骤S210表示,在重新执行的步骤S210中所启动的线程的数量和线程所执行的算法与前次执行步骤S210完全相同。
[0196]S213、根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果。
[0197]图2所示实施例可以根据测试结果计算误差值,当误差值较高时则再次启动线程进行测试,利用多次启动线程进行更多次的测试来降低误差。
[0198]如图3所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0199]S210、所述单算法有序测试模式下,控制电子设备同时启动执行相同算法的所述多个线程;
[0200]S211、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0201]S212、确定所述计算的误差值是否大于预设的第一阈值,如果否,执行步骤S213,如果是,执行步骤S214 ;
[0202]S213、根据所述多个线程对应的测试结果,确定所述单算法有序测试模式的模式测试结果;
[0203]可以理解的是,在误差值不大于预设的第一阈值时,可以不立即执行步骤S213,而是等待整个单算法有序测试模式的测试全部结束后再根据所有线程对应的测试结果确定模式测试结果。
[0204]S214、确定步骤S210 “控制所述电子设备同时启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第二阈值时,重新执行步骤S210,否则执行步骤S213。
[0205]本步骤中,确定步骤S210“控制所述电子设备同时启动执行相同算法的多个线程”的次数,即确定“控制所述电子设备同时启动执行相同算法的多个线程”的相同测试次数。
[0206]重新执行步骤S210表示,在重新执行的步骤S210中所启动的线程的数量和线程所执行的算法与前次执行步骤S210完全相同。
[0207]该第二阈值即为最大相同测试次数,例如为100次。
[0208]图3所示实施例也可以计算测试误差值,在误差值较高时,且相同测试次数低于最大相同测试次数时重复进行测试,通过重复测试来降低误差值。
[0209]如图4所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0210]S220、所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0211]S221、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;[0212]S222、确定所述计算的误差值是否大于预设的第三阈值,如果否,执行步骤S223,如果是,重新执行步骤S220 ;
[0213]重新执行步骤S220表示,在重新执行的步骤S220中所启动的线程的数量和线程所执行的算法与前次执行步骤S220完全相同。
[0214]S223、根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果。
[0215]如图5所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0216]S220、所述单算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行相同算法的多个线程;
[0217]S221、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0218]S222、确定所述计算的误差值是否大于预设的第三阈值,如果否,执行步骤S223,如果是,执行步骤S224 ;
[0219]S223、根据所述多个线程对应的测试结果,确定所述单算法无序测试模式的模式测试结果;
[0220]S224、确定步骤S220 “控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,如果所述次数小于预设的第四阈值,重新执行步骤S220。
[0221]本步骤中,确定步骤S220 “控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的次数,即确定“控制所述电子设备在不同时刻分别启动执行相同算法的多个线程”的相同测试次数。
[0222]重新执行步骤S220表示,在重新执行的步骤S220中所启动的线程的数量和线程所执行的算法与前次执行步骤S220完全相同。
[0223]该第四阈值即为最大相同测试次数,例如为100次。
[0224]在实际应用中,步骤S200可以包括如图4所示的方案或如图5所示的方案。
[0225]图4所示实施例具有与图2所示实施例相同的效果,图5所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
[0226]如图6所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0227]S230、所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0228]S231、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0229]S232、确定所述计算的误差值是否大于预设的第五阈值,如果否,执行步骤S233,如果是,重新执行步骤S230 ;
[0230]重新执行步骤S230表示,在重新执行的步骤S230中所启动的线程的数量和线程所执行的算法与前次执行步骤S230完全相同。
[0231]S233、根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;[0232]如图7所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0233]S230、所述多算法有序测试模式下,控制所述电子设备同时启动执行不同算法的多个线程;
[0234]S231、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0235]S232、确定所述计算的误差值是否大于预设的第五阈值,如果否,执行步骤S233,如果是,执行步骤S234 ;
[0236]S233、根据所述多个线程对应的测试结果,确定所述多算法有序测试模式的模式测试结果;
[0237]S234、确定步骤S230 “控制电子设备同时启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第六阈值,重新执行步骤S230。
[0238]本步骤中,确定步骤S230 “控制电子设备同时启动执行不同算法的多个线程”的次数,即确定“控制电子设备同时启动执行不同算法的多个线程”的相同测试次数。
[0239]重新执行步骤S230表示,在重新执行的步骤S230中所启动的线程的数量和线程所执行的算法与前次执行步骤S230完全相同。
[0240]该第六阈值即为最大相同测试次数,例如为100次。
[0241]在实际应用中,步骤S200可以包括如图6所示的方案或如图7所示的方案。
[0242]图6所示实施例具有与图2所示实施例相同的效果,图7所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
[0243]如图8所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0244]S240、所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
[0245]S241、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0246]S242、确定所述计算的误差值是否大于预设的第七阈值,如果否,执行步骤S243,如果是,重新执行步骤S240 ;
[0247]重新执行步骤S240表示,在重新执行的步骤S240中所启动的线程的数量和线程所执行的算法与前次执行步骤S240完全相同。
[0248]S243、根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果。
[0249]如图9所示,在本发明实施例提供的另一种系统运算性能测试方法中,图1所示实施例中的步骤S200可以包括:
[0250]S240、所述多算法无序测试模式下,控制所述电子设备在不同时刻分别启动执行不同算法的多个线程。
[0251]S241、在所述多个线程全部运行完毕后,根据所述多个线程对应的测试结果,计算测试误差值;
[0252]S242、确定所述计算的误差值是否大于预设的第七阈值,如果否,执行步骤S243,如果是,执行步骤S244 ;
[0253]S243、根据所述多个线程对应的测试结果,确定所述多算法无序测试模式的模式测试结果。
[0254]S244、确定步骤S240 “控制电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,如果所述次数小于预设的第八阈值,重新执行步骤S240。
[0255]本步骤中,确定步骤S240 “控制电子设备在不同时刻分别启动执行不同算法的多个线程”的次数,即确定“控制电子设备在不同时刻分别启动执行不同算法的多个线程”的相同测试次数。
[0256]重新执行步骤S240表示,在重新执行的步骤S240中所启动的线程的数量和线程所执行的算法与前次执行步骤S240完全相同。
[0257]该第八阈值即为最大相同测试次数,例如为100次。
[0258]在实际应用中,步骤S200可以包括如图8所示的方案或如图9所示的方案。
[0259]图8所示实施例具有与图2所示实施例相同的效果,图9所示实施例具有与图3所示实施例相同的效果和特点,不再赘述。
[0260]需要说明的一点是,单算法有序测试模式的测试过程可以为图2或图3所示的过程,单算法无序测试模式的测试过程可以为图4或图5所示的过程,多算法有序测试模式的测试过程可以为图6或图7所示的过程,多算法无序测试模式的测试过程可以为图8或图9所示的过程。当步骤S200根据所述测试指令使用单算法有序测试模式和单算法无序测试模式对所述电子设备进行测试时,步骤S200可以包括单算法有序测试模式的测试过程和单算法无序测试模式的测试过程。也即具体的测试过程与所使用的测试模式相对应,各测试模式的先后顺序本发明不作限定。
[0261]下面公开一种本发明在实际应用中的方案,该方案依次进行单算法有序测试模式、单算法无序测试模式、多算法有序测试模式和多算法无序测试模式这四种测试模式的测试,最后对以上四种测试模式的测试结果进行加权平均运算,得到电子设备的测试结果。
[0262]首先进行单算法有序测试,它需要测试两个主要内容:一是CPU的整型数据运算能力Sstji,二是CPU的浮点数据运算能力sS()f。
[0263]整型数据运算能力测试过程如下:
[0264]初始化线程创建所需要的参数并创建线程,初始化的参数包括算法名称、线程序号、线程启动次数等。同时启动多个线程,该多个线程中的每个线程都执行相同的算法,并且每个线程都多次执行该算法,如执行16次,对每个线程每次执行该算法的执行时间均进行记录和评分,并记录评分后的得分xt。假设启动3个线程,每个线程执行16次算法,对每个线程每次执行该算法的执行时间均进行记录和评分,那么一共将记录16*3即48个得分。
[0265]由于对于同一台电子设备而言,同时启动的线程数不同,每个线程所能使用的资源是有差别的,因此,为了提高测试结果的准确性,可选的,可以对每个线程每次执行该算法的得分进行修正,修正公式可以为χ=ηλΧ?,其中,n代表线程数,λ代表线程修正因子,xt代表测试得分,X代表修正后得分。具体的,λ可以为1-1.2。
[0266]可选的,在本次测试中所有线程中的算法执行完毕后,如执行16次,确定该算法在所有线程中得分的误差情况,如果误差过大,则重新测试,直到误差不高于预设阈值或相同测试次数达到最大相同测试次数为止。[0267]在误差不高于预设阈值或误差高于预设阈值但相同测试次数达到最大相同测试次数后(如100次),对所记录的评分进行平均运算,得到电子设备处理该算法的平均得分。具体的,可以通过公式:
[0268]
【权利要求】
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浮点运算性能测试结果进行加权几何平均运算后得到的运算值,计算出所述系统运算性能的测试结果。
【文档编号】G06F11/26GK103559113SQ201310545594
【公开日】2014年2月5日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】王颢, 蔡旋, 傅盛 申请人:北京安兔兔科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1