掌桥专利:专业的专利平台
掌桥专利
首页

文件生成方法、装置和计算机可读存储介质

文献发布时间:2023-06-19 11:29:13


文件生成方法、装置和计算机可读存储介质

技术领域

本发明涉及信息技术领域,特别涉及一种文件生成方法、装置和计算机可读存储介质。

背景技术

目前,在采用测试工具测试存储功能、计算机性能时,需要生成测试文件。相关技术主要采用两种生成方式。第一种方式为使用相同的数据填充文件中的各个位置,例如均填充0。第二种方式是为文件的各个位置生成随机数,以便采用随机数进行填充。

发明内容

发明人经过分析后发现,第一种方式可以实现测试文件的快速生成,然而由于文件内存在大量的重复数据,很容易被大比例地压缩,导致其不适用于读写性能、重构性能等场景的测试。第二种方式不易被压缩或者压缩比较小,然而生成随机数的过程非常耗时,因此这种生成测试文件的方式性能比较低。因此,相关技术的测试文件生成效率较低,进而也会影响测试效率。

本发明实施例所要解决的一个技术问题是:如何提高测试文件生成效率和测试效率。

根据本发明一些实施例的第一个方面,提供一种文件生成方法,包括:将随机生成的标识块随机数填充到待生成文件的标识块中;对于待生成文件待填充的一个或多个数据块中的每一个,随机生成数据块对应的种子随机数和增量随机数;将种子随机数填充到相应数据块的一个位置中;对于数据块中的每个未填充的位置,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值。

在一些实施例中,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值包括:将数据块中上一次填充的值以及增量随机数之和,确定为未填充的位置的值。

在一些实施例中,将种子随机数填充到相应数据块的首个位置中;对于数据块中的每个未填充的位置,依次根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值,直到填充完毕数据块的最后一个位置。

在一些实施例中,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值包括:将数据块中上一次填充的值以及增量随机数与上一次填充的位置的标识的乘积之和,确定为未填充的位置的值。

在一些实施例中,在未填充的位置的值大于预设范围的情况下,重新生成相应的数据块对应的种子随机数和增量随机数中的至少一种。

在一些实施例中,将随机生成的标识块随机数填充到待生成文件的标识块中包括:根据标识块的字节数,确定标识块随机数的取值范围;在取值范围内生成随机数作为标识块随机数,并填充到待生成文件的标识块中。

在一些实施例中,增量随机数为非0整数。

在一些实施例中,数据块的每个位置的大小为一个字节。

根据本发明一些实施例的第二个方面,提供一种文件生成装置,包括:标识块填充模块,被配置为将随机生成的标识块随机数填充到待生成文件的标识块中;生成模块,被配置为对于待生成文件待填充的一个或多个数据块中的每一个,随机生成数据块对应的种子随机数和增量随机数;数据块填充模块,被配置为将种子随机数填充到相应数据块的一个位置中;以及,对于数据块中的每个未填充的位置,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值。

根据本发明一些实施例的第三个方面,提供一种文件生成装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种文件生成方法。

根据本发明一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意一种文件生成方法。

上述发明中的一些实施例具有如下优点或有益效果:由于每个数据块都对应一个种子随机数,因此生成的测试文件的不同数据块间是无规律的,并且数据块内部的规律性较弱,因此在使得生成的测试文件难以被压缩的同时,提高了文件生成的速度。因此提高了测试文件生成的效率和测试效率。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本发明一些实施例的文件生成方法的流程示意图。

图2示出了根据本发明一些实施例的文件生成装置的结构示意图。

图3示出了根据本发明另一些实施例的文件生成装置的结构示意图。

图4示出了根据本发明又一些实施例的文件生成装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1示出了根据本发明一些实施例的文件生成方法的流程示意图。如图1所示,该实施例的文件生成方法包括步骤S102~S108。

在步骤S102中,将随机生成的标识块随机数填充到待生成文件的标识块中。

本发明的实施例将测试文件划分为标识块和数据块两种类型。每个测试文件包括一个标识块以及一个或多个数据块。

标识块用于在生成较小的文件时,对不同的文件进行区分。标识块位于数据块之前,从而标识块包括测试文件的第一个字节以及之后的若干字节。

在一些实施例中,根据标识块的字节数,确定标识块随机数的取值范围;在取值范围内生成随机数作为标识块随机数,并填充到待生成文件的标识块中。

例如,设标识块包括4个字节,则可以使用0~2

在步骤S104中,对于待生成文件待填充的一个或多个数据块中的每一个,随机生成数据块对应的种子随机数和增量随机数。种子随机数例如可以是1个字节。

在步骤S106中,将种子随机数填充到相应数据块的一个位置中。为了便于后续

在步骤S108中,对于数据块中的每个未填充的位置,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值。

相较于全部填充随机数的方式,根据已填充的值和增量随机数确定其他位置的值的方式计算效率更高。

例如,可以对数据块中上一次填充的值以及增量随机数进行加法运算来得到填充的内容。例如,直接求和或者令增量随机数乘以一定的倍数再求和。加法运算的计算量很小,因此可以提高计算效率。

在一些实施例中,增量随机数为非0整数,即可以是正整数或者负整数。

由于每个数据块都对应一个种子随机数,因此生成的测试文件的不同数据块间是无规律的,并且数据块内部的规律性较弱,因此在使得生成的测试文件难以被压缩的同时,提高了文件生成的速度。因此提高了测试文件生成的效率和测试效率。

下面示例性地描述两种确定数据块中数据的方法。

在一些实施例中,对于数据块中的每个未填充的位置,将数据块中上一次填充的值以及增量随机数之和,确定为未填充的位置的值。填充顺序可以是按从第一个位置到最后一个位置的顺序填充、或者根据预设的规则以其他顺序填充。

按从第一个位置到最后一个位置的顺序填充的具体方式为:将种子随机数填充到相应数据块的首个位置中;对于数据块中的每个未填充的位置,依次根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值,直到填充完毕数据块的最后一个位置。

例如,将种子随机数填充到数据块的首个位置;然后,将种子随机数、即首个位置的值与增量随机数之和填充到第二个位置;接下来,将第二个位置的值与增量随机数之和填充到第三个位置……以此类推,直到数据块中的最后一个位置,例如第256个位置。对于每个数据块,重复上述过程,直到测试文件的所有数据块填充完毕。

当采用从第一个位置到最后一个位置的顺序填充的方式时,还可以采用高阶增量的方式确定每个位置的填充值。在一些实施例中,将数据块中上一次填充的值以及增量随机数与上一次填充的位置的标识的乘积之和,确定为未填充的位置的值。

例如,将种子随机数填充到数据块的首个位置;然后,将种子随机数、即首个位置的值与增量随机数之和填充到第二个位置;接下来,将第二个位置的值与增量随机数的2倍之和填充到第三个位置,再将第三个位置的值与增量随机数的3倍之和填充到第四个位置……以此类推,直到数据块中的最后一个位置。对于每个数据块,重复上述过程,直到测试文件的所有数据块填充完毕。

如果增量随机数为正数,数据块填充的数据会逐渐增长。在极端情况下,计算出的填充值会超出计算机可承受的数值范围。在一些实施例中,在未填充的位置的值大于预设范围的情况下,重新生成相应的数据块对应的种子随机数和增量随机数中的至少一种。从而可以避免测试文件生成过程发生错误,确保了测试文件的可用性,提高了测试效率。

下面参考图2描述本发明文件生成装置的实施例。

图2示出了根据本发明一些实施例的文件生成装置的结构示意图。如图2所示,该实施例的文件生成装置20包括:标识块填充模块210,被配置为将随机生成的标识块随机数填充到待生成文件的标识块中;生成模块220,被配置为对于待生成文件待填充的一个或多个数据块中的每一个,随机生成数据块对应的种子随机数和增量随机数;数据块填充模块230,被配置为将种子随机数填充到相应数据块的一个位置中;以及,对于数据块中的每个未填充的位置,根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值。

在一些实施例中,数据块填充模块230进一步被配置为将数据块中上一次填充的值以及增量随机数之和,确定为未填充的位置的值。

在一些实施例中,数据块填充模块230进一步被配置为将种子随机数填充到相应数据块的首个位置中;对于数据块中的每个未填充的位置,依次根据数据块中上一次填充的值以及增量随机数,确定未填充的位置的值,直到填充完毕数据块的最后一个位置。

在一些实施例中,数据块填充模块230进一步被配置为将数据块中上一次填充的值以及增量随机数与上一次填充的位置的标识的乘积之和,确定为未填充的位置的值。

在一些实施例中,生成模块220进一步被配置为在未填充的位置的值大于预设范围的情况下,重新生成相应的数据块对应的种子随机数和增量随机数中的至少一种。

在一些实施例中,标识块填充模块210被配置为根据标识块的字节数,确定标识块随机数的取值范围;在取值范围内生成随机数作为标识块随机数,并填充到待生成文件的标识块中。

在一些实施例中,增量随机数为非0整数。

在一些实施例中,数据块的每个位置的大小为一个字节。

图3示出了根据本发明另一些实施例的文件生成装置的结构示意图。如图3所示,该实施例的文件生成装置30包括:存储器310以及耦接至该存储器310的处理器320,处理器320被配置为基于存储在存储器310中的指令,执行前述任意一个实施例中的文件生成方法。

其中,存储器310例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。

图4示出了根据本发明又一些实施例的文件生成装置的结构示意图。如图4所示,该实施例的文件生成装置40包括:存储器410以及处理器420,还可以包括输入输出接口430、网络接口440、存储接口450等。这些接口430,440,450以及存储器410和处理器420之间例如可以通过总线460连接。其中,输入输出接口430为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口440为各种联网设备提供连接接口。存储接口450为SD卡、U盘等外置存储设备提供连接接口。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种文件生成方法。

本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 记录图像文件的计算机可读记录媒体、生成记录媒体的装置、记录图像文件生成程序的媒体,发送图像文件的装置处理图像文件的装置及记录图象文件处理程序的媒体
  • 一种镜像文件生成方法、装置和计算机可读存储介质
技术分类

06120112941993