清除客户端缓存的方法和装置的制造方法_4

文档序号:9288365阅读:来源:国知局
测试对象在缓存中保存的访问数据之后,如果再次启动测试对象,此时由于缓存内容被删除,则再次启动测试对象是一个冷启动过程,从而本方案可模拟测试对象的冷启动过程。
[0083]分析可知,本申请上述实施例二,提供了一种在对测试对象进行一次冷启动操作之后,不需要重新启动该测试对象所在的客户端,就可以清除在缓存中保存上述冷启动过程产生的访问数据的方案。上述方案中,客户端通过启动客户端上安装的应用程序实现,在触发清除缓存控件之后可以调用启动文件系统函数来启动缓存管理器执行清除缓存的功能,该过程不需要重启客户端就可以删除之前冷启动测试对象时产生的缓存数据,因此,在对待测试对象进行多次冷启动操作的过程中,上述方案一方面保证了测试环境不发生变化,另一方面也避免了重启客户端产生的额外耗时,解决了基于重启计算机客户端的方式来执行冷启动测试耗时的方案,由于测试环境复杂、测试等待时间较长,导致冷启动测试耗时的测试结果不准确的技术问题。这种通过清理文件缓存方式模拟冷启动测试对象的测试方法,达到了节约测试时间,提高测试结果准确度的目的。
[0084]容易注意到,由于不需要客户端重启就可以清除缓存中该测试对象的历史测试结果,而且需要进一步说明的是,由于启动应用程序之后,可以抓取到测试对象的存储路径,因此,被启动清除缓存功能缓存的缓存管理器可以依据该存储路径,清除缓存中该测试对象的缓存数据,从而可以避免了将缓存中其他文件也一并删除,清除结果更加准确,不影响其它应用程序或者文件的使用效率。因此,通过本发明实施例所提供的方案,在对测试对象进行冷启动之后,不需要重启客户端,仅需要通过调用启动文件系统函数,来启动缓存管理器清除测试对象在缓存中保存的访问数据即可,而且该过程中可以获取测试对象的存储路径,因此,在清除缓存的过程中,仅清除该测试对象对应的缓存数据。
[0085]此处需要示例说明的是,以将上述方案应用在冷启动测试耗时的场景中为例,本申请上述实施例中的测试对象可以是一个文件目录或者文件,应用程序是一个可执行程序,因此,可以通过该应用程序选择添加多个需要清除缓存的文件目录或文件,其中,在运行该可执行程序之后,使用应用程序抓取测试对象的存储路径的方式可以包括如下几种方案:通过点击文本框中的文件条目或者文件目录的条目来确定需要进行清除缓存的测试对象,应用程序读取上述测试对象的存储路径;通过触发应用程序的应用界面上的添加控件,来选择并添加需要进行清除缓存的测试对象,应用程序读取选中的测试对象的存储路径。由于,上述点击或选中测试对象的过程是一个访问测试对象的过程,操作系统可以自动获取并显示该测试对象在磁盘中的保存路径,因此,应用程序可以操作系统自带的功能来直接读取测试对象的存储路径。
[0086]此处还需要说明的是,本申请上述示例中的文件系统函数可以是操作系统自带的CreateFile函数,无缓冲启动文件标志位可以是CreateFile函数中的FILE_FLAG_N0_BUFFERING标记,在用户点击该应用程序的应用界面提供的清除缓存控件之后,可以通过windows系统接口调用CreateFile函数来执行清理缓存操作,通过查看CreateFile函数的第六个参数中是否有FILE_FLAG_NO_BUFFERING标记,来确定是否启动缓存管理器去清除缓存。
[0087]优选地,本申请上述实施例中,在执行步骤S24中的调用启动文件系统函数之后,可以包括如下实施步骤:将无缓冲启动文件标志位写入启动文件系统函数的第一参数,并将测试对象的访问路径写入启动文件系统函数中的第二参数。
[0088]以将上述方案应用在冷启动测试耗时的场景中为例,当上述实施方案中的测试对象是一个文件目录时,测试对象的存储路径是一个目录文件路径,启动文件系统函数的第一参数可以是CreateFile函数的第六个参数,启动文件系统函数中的第二参数可以是CreateFile函数的第一个参数。由此可知,上述实施步骤可以实现通过系统提供的打开文件系统接口来调用启动文件系统函数(即CreateFile函数),并将测试对象的存储路径(可以是目录文件路径)传入CreateFile函数的第一个参数,将无缓存打开文件标志位FILE_FLAG_NO_BUFFERING传入CreateFile函数的第六个参数。
[0089]本申请上述实施例所提供的装置可以在客户端上运行,实施过程中,在上述实施例中的客户端可以是安装了应用程序的清除缓存的工具。
[0090]此处需要说明的是,上述冷启动处理模块601、获取模块603、调用模块605、启动模块607、清除模块609可以通过客户端的处理器来实现,对应于实施例一中的步骤S20至步骤S28,五个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
[0091]优选地,如图7所示,在执行调用模块605之前,装置还可以使用客户端中的处理器来执行如下模块的功能:访问模块701,用于访问启动文件系统函数;写入模块703,用于将无缓冲启动文件标志位写入启动文件系统函数的第一参数,并将测试对象的访问路径写入启动文件系统函数中的第二参数。
[0092]此处需要说明的是,上述访问模块701和写入模块703对应于实施例一中的写入步骤,二个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
[0093]优选地,如图8所示,在执行启动模块607之前,装置还可以使用客户端中的处理器来执行如下模块的功能:生成模块801,用于启动测试对象,生成测试对象的测试对象句柄;发送模块803,用于发送测试对象句柄至客户端的关闭文件系统函数中,使得在客户端检测到关闭文件系统函数中包含文件句柄的情况下,关闭测试对象。
[0094]此处需要说明的是,上述生成模块801和发送模块803对应于实施例一中的步骤S30和步骤S32,二个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
[0095]优选地,如图9所示,在执行生成模块801之前,装置还可以使用客户端中的处理器来执行如下模块的功能:接收模块901,用于客户端的文件系统接收读写测试对象的读写请求;处理模块903,用于使用启动文件系统函数来中断文件系统将读写请求发送给客户端的缓存管理器,并将读写请求直接发送给客户端的磁盘驱动器;子获取模块905,用于客户端磁盘驱动器使用读写请求访问磁盘,获取读写请求所需要的数据;接收模块906,用于客户端的文件系统接收返回的读写请求所需要的数据。
[0096]此处需要说明的是,上述接收模块901、处理模块903、子获取模块905和接收模块906对应于实施例一中的步骤S40和步骤S46,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
[0097]优选地,可以使用客户端中的处理器来实现上述处理模块903的功能,上述处理模块903可以包括:可以运行来客户端处理器中的调用模块和控制模块,其中,调用模块,用于调用启动文件系统函数,获取启动文件系统函数中的第一参数和第二参数;控制模块,用于在第一参数中读取到无缓冲启动文件标志位的情况下,停止启动缓存管理器来接收读写请求,启动磁盘驱动器来接收读写请求;其中,磁盘驱动器根据测试对象的访问路径将读写请求发送至磁盘对应的位置,使用读写请求处理测试对象,获取读写测试对象的读写结果。
[0098]此处需要说明的是,上述调用模块和控制模块对应于实施例一中的步骤S421和步骤S423,二个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
[0099]优选地,在执行控制模块实现停止启动缓存管理器来接收读写请求,启动磁盘驱动器之前,装置还可以使用客户端中的处理器来执行如下模块的功能:检测模块,用于检测启动文件系统函数中的第一参数是否包含无缓冲启动文件标志位;第一子处理模块,用于如果检测到启动文件系统函数中的第一参数包含无缓冲启动文件标志位的情况下,则执行控制模块实现的进入停止启动缓存管理器来接收读写请求,启动磁盘驱动器来接收读写请求的功能;第二子处理模块,用于如果检测到第一参数中的无缓冲启动文件标志位为空,则启动缓存管理器接收读写请求。
[0100]此处需要说明的是,上述检测模块、第一子处理模块和第二子处理模块对应于实施例一中的检测步骤,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在客户端中,可以通过软件实现,也可以通过硬件实现。
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1