一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于mmap系统的内存读写速率测试方法、装置及系统与流程

2021-11-10 03:37:00 来源:中国专利 TAG:


1.本发明涉及嵌入式设备测试技术领域,具体地涉及一种基于mmap系统的内存读写速率测试方法、一种基于mmap系统的内存读写速率测试装置及一种基于mmap系统的内存读写速率测试系统。


背景技术:

2.完成嵌入式设备开发后,需要进行大量的性能测试,其中,内存的性能指标测试至关重要。在现有的内存性能测试中,大多通过编写测试demo对内存性能进行测试。自行编写的demo大多使用calloc等c库函数或直接读文件到内存来对内存性能进行测试。这会伴随有一定的系统调用过程,其中产生的开销会对测试结果造成影响,而且cpu读取数据时也会优先读取cache,这也会使的测试结果不可靠。为了避免这种情况,大多采用在每次测试前清除cache,这会增多测试工序,使得测试时间加长。所以现在的测试方法无法同时保证测试准确性和较快的测试时间,导致无法适应嵌入式设备开发量增大的测试现状。针对现有内存性能测试方法存在的测试度不足和效率低的问题,需要创造一种新的内存性能测试方法。


技术实现要素:

3.本发明实施方式的目的是提供一种基于mmap系统的内存读写速率测试方法、装置及系统,以至少解决现有内存性能测试方法存在的测试度不足和效率低的问题。
4.为了实现上述目的,本发明第一方面提供一种基于mmap系统的内存读写速率测试方法,所述方法包括:s1)在第一采集时刻获取待测设备的设备文件;s2)在mmap系统将所述设备文件的内存物理地址映射至用户空间的虚拟地址;s3)在所述用户空间的虚拟地址开始所述待测设备的内存读写直至第二采集时刻,获取第一采集时刻与第二采集时刻之间的内存读写数据量;s4)根据第一采集时刻与第二采集时刻之间的间隔时间长度和第一采集时刻与第二采集时刻之间的内存读写数据量,计算所述待测设备的内存读写速率。
5.可选的,所述待测设备的设备文件包括:/dev/mem文件。
6.可选的,步骤s1)中,所述在第一采集时刻获取待测设备的设备文件,包括:在待测设备的linux系统中进行/dev/mem文件的设备文件识别;提取识别的设备文件。
7.可选的,步骤s4)中,所述待测设备的内存读写速率计算公式为:
[0008][0009]
其中,v为所述待测设备的内存读写速率;m为第一采集时刻与第二采集时刻之间的内存读写数据量;t为第一采集时刻与第二采集时刻之间的间隔时间长度。
[0010]
可选的,所述方法还包括:执行步骤s1)

s3)n次,获得n个内存读写数据量;其中,n次执行过程中,第一采集时刻与第二采集时刻之间的n个间隔时间长度均不同;根据n个内存读写数据量和对应的n个间隔时间长度,计算获得对应的n个内存读写速率;计算n个内存
读写速率的平均值,将所述平均值作为所述待测设备的内存读写速率。
[0011]
本发明第二方面提供一种基于mmap系统的内存读写速率测试装置,应用于待测设备的内存读写速率,所述系统包括:采集模块,用于在第一采集时刻获取所述待测设备的设备文件;映射模块,用于在mmap系统将所述设备文件的内存物理地址映射至用户空间的虚拟地址;读写模块,用于在所述用户空间的虚拟地址开始所述待测设备的内存读写直至第二采集时刻;所述采集模块还用于获取第一采集时刻与第二采集时刻之间的内存读写数据量;速率获取模块,用于根据第一采集时刻与第二采集时刻之间的间隔时间长度和第一采集时刻与第二采集时刻之间的内存读写数据量,计算所述待测设备的内存读写速率。
[0012]
可选的,所述装置还包括:计时模块,用于分别在所述第一采集时刻和所述第二采集时刻启动计时和停止计时,获得所述第一采集时刻与所述第二采集时刻之间的间隔时间长度。
[0013]
可选的,所述装置还包括:显示模块,用于导出并显示所述待测设备的内存读写速率。
[0014]
本发明第三方面提供一种基于mmap系统的内存读写速率测试系统,包括上述的基于mmap系统的内存读写速率测试装置。
[0015]
另一方面,本发明提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的基于mmap系统的内存读写速率测试方法。
[0016]
通过上述技术方案,通过mmap技术将内存物理地址映射至用户空间的虚拟地址,直接在用户空间访问物理内存,中间不存在调用步骤,此时进行的速率计算是贴近实际的,因为其中省去了传统方案的大多系统调用,减少了其中不必要的开销,同时规避了cache的处理问题。
[0017]
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
[0018]
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
[0019]
图1是本发明一种实施方式提供的基于mmap系统的内存读写速率测试方法的步骤流程图;
[0020]
图2是本发明一种实施方式提供的基于mmap系统的内存读写速率测试装置的装置结构图。
[0021]
附图标记说明
[0022]
10

采集模块;20

映射模块;30

读写模块;40

速率获取模块;
[0023]
50

计时模块;60

显示模块。
具体实施方式
[0024]
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0025]
在完成嵌入式设备开发后,往往需要进行设备性能测试,其中,设备内存读写速率测试尤为重要,也是客户最为看重的。现有的内存读写方法主要是编写对应的测试demo,然后通过测试demo进行设备内存速写速率测试。但是自行编写的demo大多使用calloc等c库函数或直接读文件到内存来对内存性能进行测试,这就使得在测试过程中会伴随一定的系统调用过程,其中产生的开销会对测试结果造成很大的影响。而且cpu读取数据时也会优先读取cache,这也会使的测试结果不可靠。若在测试之前清除cache,虽然会提高测试结果准确度,但是相应的会造成测试时间加长。所以现在的测试方法无法同时保证测试准确性和较快的测试时间,导致无法适应嵌入式设备开发量增大的测试现状。基于此,本发明提出了一种基于mmap系统的内存读写速率测试方法,通过mmap技术我们可以直接在用户空间访问物理内存,此时进行的速率计算式比较准确的,因为其中省去了传统方案的大多系统调用,减少了其中不必要的开销。同时规避了cache的处理问题。
[0026]
图2是本发明一种实施方式提供的基于mmap系统的内存读写速率测试装置的装置结构图。如图2所示,本发明实施方式提供一种基于mmap系统的内存读写速率测试装置,所述装置包括:采集模块10,用于在第一采集时刻获取所述待测设备的设备文件;映射模块20,用于在mmap系统将所述设备文件的内存物理地址映射到用户空间的虚拟地址上;读写模块30,用于在所述用户空间的虚拟地址开始所述待测设备的内存读写直至第二采集时刻;所述采集模块10还用于获取所述第一采集时刻与所述第二采集时刻之间的内存读写数据量;速率获取模块40,用于根据所述第一采集时刻与所述第二采集时刻之间的间隔时间长度和所述内存读写数据量获得所述待测设备的内存读写速率。
[0027]
优选的,所述装置还包括:计时模块50,用于分别在所述第一采集时刻和所述第二采集时刻启动计时和停止计时,并获得所述第一采集时刻与所述第二采集之间的间隔时间长度。
[0028]
优选的,所述装置还包括:显示模块60,用于导出并显示所述待测设备的内存读写速率。
[0029]
本发明另一方面还提供一种基于mmap系统的内存读写速率测试系统,包括上述的基于mmap系统的内存读写速率测试装置。
[0030]
图1是本发明一种实施方式提供的基于mmap系统的内存读写速率测试方法的方法流程图。如图1所示,本发明实施方式提供一种基于mmap系统的内存读写速率测试方法,所述方法包括:
[0031]
步骤s10:在第一采集时刻获取所述待测设备的设备文件。
[0032]
具体的,待测设备中存储的文件类型多样且数据量较大,进行内存性能测试时,若多所有数据进行分析测试,则势必造成测试时间过长的问题。/dev/mem文件是整个物理内存映像,可以用来访问物理内存。其可以通过mmap可以将物理地址映射到用户空间的虚拟地址上,在用户空间完成对设备寄存器的操作,这也就实现了本发明所需要的在用户空间完成对内存的读写的需求。所以,进行内存读写速率测试时,首先需要读取对应的文件,即/dev/mem文件。识别并读取到对应的文件后,便可以基于该文件进行后粗的物理地址映射步骤。
[0033]
步骤s20:在mmap系统将所述设备文件的内存物理地址映射到用户空间的虚拟地址上。
[0034]
具体的,识别并读取到/dev/mem文件后,在mmap系统执行预设的映射函数。系统进行mmap函数调用,产生软中断进入内核后调用sys

mmap,最终会调用到mem驱动的mmap实现函数。根据预设进程执行映射,并在最终调用remap

pfn

range,该函数完成指定物理地址与用户空间虚拟地址页表的建立。输出包含要映射的物理地址的映射结果,地址空间指处理器总线上的所有可寻址空间,除了内存,还有外设的io空间,以及其他总线映射过来的mem,如pci。基于此,只要确定我们处理器的地址空间分布,就可以将我们需要的地址映射到用户空间进行操作。
[0035]
步骤s30:在所述用户空间的虚拟地址开始所述待测设备的内存读写直至第二采集时刻,获取第一采集时刻与第二采集时刻之间的内存读写数据量。
[0036]
具体的,将设备文件的内存物理地址映射到用户空间的虚拟地址上后,我们便可以在虚拟地址上进行内存文件的直接读写,且该读写过程不涉及系统调用步骤,直接测定该读写数据,便可以准确获知设备的内存读写性能。完成映射后,开始执行内存读写,同时开始计时,并将该计时时刻设定为第一采集时刻。在用户空间的虚拟地址上进行所述待测设备内存读写,读写过程中,不进行读写内容分析和判断,读写数据量为唯一参考数据。实时采集读写模块的数写数据,并进行数据量累计。经过预设时间段后,停止计时,确定第二时刻。该截止的第二时刻作为第二采集时刻,在第二采集时刻停止进行内存读写,并输出读写停止触发信号。响应于读写停止触发信号,停止读写数据量采集,统计累计的读写数据量,作为第一采集时刻与第二采集时刻之间的内存读写数据量。
[0037]
在另一种可能的实施方式中,第一采集时刻与第二采集时刻之间的时间不进行预设,具体截止时间,由总数据量决定。不同的测试设备存有的数据量不同,进行内存读写时,若预设时间过长,则会出现所有数据读写完成,需要重复进行读取的情况,这与实际使用情况存在区别。为了避免这种情况,当完成所有数据读写时,读取模块主动停止读写,并同一时间传输停止计时信号,确定对应的停止计时时刻为第二采集时刻。这种方式可以避免内存数据提前读写完成的情况,但若本身数据体量很大,若依旧需要进行所有数据读写完成,则会使得总读写时间变长,影响测试效率。所以,优选的,在根据读写数据完成量主动停止计时的基础上,增加预设截止时间。若在预设截止时间前完成数据读写,则系统主动停止。若到达预设截止时间依旧存在未读写数据量,则强制时间截停,使得测试时间可控。
[0038]
步骤s40:根据第一采集时刻与第二采集时刻之间的间隔时间长度和第一采集时刻与第二采集时刻之间的内存读写数据量,计算所述待测设备的内存读写速率。
[0039]
具体的,根据固定时间段内的数据读写量和时间长度,便可以获得该段时间内的内存读写速率。无论是哪一种计时方式,只在第一采集时刻与第二采集时刻之间的时间段进行内存读写,并输出该段时间内的内存读写量。记录第一采集时刻和第二采集时刻完成内存读写后,根据第一采集时刻和第二采集时刻获得这两个时刻之间的时间长度。通过获得内存读写时间长度,获得该短时间的内存读写数据量,然后根据预设算法获得该段时间内的内存速写速率,其预设算法为:
[0040][0041]
其中,v为所述待测设备的内存读写速率;m为第一采集时刻与第二采集时刻之间的内存读写数据量;t为第一采集时刻到第二采集时刻之间的间隔时间长度。
[0042]
在本发明实施例中,通过mmap技术,我们可以直接在用户空间访问物理内存,此时进行的速率计算是比较准确的,因为其中省去了传统方案的大多系统调用,减少了其中不必要的开销。
[0043]
在一种可能的实施方式中,对于同一待测设备,我们进行分段计时,即在整个设备内存读写过程中,设置多个采集时刻,每相邻两个采集时刻之间的时间长度不同。基于此,可以获得多个不同时间段,以及各时间段内的内存读写数据量。通过设置的时间长度不同,使得速率计算涉及的偶然因素更多,最终的平均值的准确度也就越高。
[0044]
在另一种可能的实施方式中,对于同一个待测设备,我们进行分段计时,即在整个设备内存读写过程中,设置多个采集时刻,每相邻两个采集时刻之间的时间长度相同。基于此,可以获得多个相同时间段,以及各时间段内的内存读写数据量。根据每段时间的时间长度和对应时间段内的内存读写数据量,可以获得对应时间段内的内存读写速率。获得多个该设备的内存读写速率,然后求平均值,将该平均值作为该待测设备的内存读写速率。通过求得多个内存速率求平均值的方法,可以有效避免偶然误差,提高测试结果的准确性。
[0045]
在另一种可能的实时方式中,为了进一步避免偶然误差,进行一部分数据的重复读写,并在规定时间内,获取该部分数据的读写速率。即保证每一次对比读写步骤的读写数据相同,避免因为数据不同导致读写速度不同的问题。然后求取各对比读写步骤的测试读写速率平均值,获得准确的读写速率,并以该速写速率作为待测设备的内存读写性能评估依据。
[0046]
本发明实施方式还提供一种计算机可读储存介质,该计算机可读存储介质上储存有指令,其在计算机上运行时使得计算机执行上述的基于mmap系统的内存读写速率测试方法。
[0047]
本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0048]
以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。
[0049]
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献