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

文档序号:9288365阅读:来源:国知局
出或描述的步骤。
[0034]图2是根据本发明实施例一的清除客户端缓存的方法流程示意图。
[0035]如图2所示,该方法可以应用在客户端,从客户端的角度对本申请的实施过程进行详细描述,可以包括如下步骤:
[0036]步骤S20,记录客户端的测试对象在冷启动过程中的访问数据,并保存访问数据至缓存。该步骤可以是客户端启动之后,第一启动测试对象的测试过程,系统可以记录该冷启动过程的耗时时间。本发明可以通过冷启动抓取工具,来抓取被测对象在冷启动过程中产生的访问数据(例如文件读写操作),确定程序启动时所有需要读取的文件。
[0037]步骤S22,启动客户端的应用程序,使用应用程序抓取测试对象的存储路径。
[0038]该步骤S22中的存储路径可以表示系统需要执行清理缓存的测试对象的文件路径。同时,该步骤S22可以通过在应用程序提供的应用界面中选中测试对象,来实现获取测试对象的存储路径。
[0039]步骤S24,在触发应用界面上的清除缓存控件之后,调用启动文件系统函数。
[0040]步骤S26,在启动文件系统函数中包含无缓冲启动文件标志位的情况下,启动缓存管理器。
[0041]步骤S28,缓存管理器根据测试对象的存储路径,清除测试对象在缓存中保存的访问数据。
[0042]上述步骤S22至步骤S28实现了,在冷启动测试对象之后,需要先关闭该测试对象,才可以使用应用程序(即缓存清理工具)来选择冷启动过程中读取的测试对象(可以是文件和目录),并对该测试对象执行清理缓存的功能。在完成步骤S28之后,如果再次启动测试对象,此时由于缓存内容被删除,则再次启动测试对象是一个冷启动过程,从而本方案可模拟测试对象的冷启动过程。
[0043]分析可知,本申请上述实施例一,提供了一种在对测试对象进行一次冷启动操作之后,不需要重新启动该测试对象所在的客户端,就可以清除在缓存中保存上述冷启动过程产生的访问数据的方案。上述方案中,客户端通过启动客户端上安装的应用程序实现,在触发清除缓存控件之后可以调用启动文件系统函数来启动缓存管理器执行清除缓存的功能,该过程不需要重启客户端就可以删除之前冷启动测试对象时产生的缓存数据,因此,在对待测试对象进行多次冷启动操作的过程中,上述方案一方面保证了测试环境不发生变化,另一方面也避免了重启客户端产生的额外耗时,解决了基于重启计算机客户端的方式来执行冷启动测试耗时的方案,由于测试环境复杂、测试等待时间较长,导致冷启动测试耗时的测试结果不准确的技术问题。这种通过清理文件缓存方式模拟冷启动测试对象的测试方法,达到了节约测试时间,提高测试结果准确度的目的。
[0044]容易注意到,由于不需要客户端重启就可以清除缓存中该测试对象的历史测试结果,而且需要进一步说明的是,由于启动应用程序之后,可以抓取到测试对象的存储路径,因此,被启动清除缓存功能缓存的缓存管理器可以依据该存储路径,清除缓存中该测试对象的缓存数据,从而可以避免了将缓存中其他文件也一并删除,清除结果更加准确,不影响其它应用程序或者文件的使用效率。因此,通过本发明实施例所提供的方案,在对测试对象进行冷启动之后,不需要重启客户端,仅需要通过调用启动文件系统函数,来启动缓存管理器清除测试对象在缓存中保存的访问数据即可,而且该过程中可以获取测试对象的存储路径,因此,在清除缓存的过程中,仅清除该测试对象对应的缓存数据。
[0045]此处需要示例说明的是,以将上述方案应用在冷启动测试耗时的场景中为例,本申请上述实施例中的测试对象可以是一个文件目录或者文件,应用程序是一个可执行程序,因此,可以通过该应用程序选择添加多个需要清除缓存的文件目录或文件,其中,在运行该可执行程序之后,使用应用程序抓取测试对象的存储路径的方式可以包括如下几种方案:通过点击文本框中的文件条目或者文件目录的条目来确定需要进行清除缓存的测试对象,应用程序读取上述测试对象的存储路径;通过触发应用程序的应用界面上的添加控件,来选择并添加需要进行清除缓存的测试对象,应用程序读取选中的测试对象的存储路径。由于,上述点击或选中测试对象的过程是一个访问测试对象的过程,操作系统可以自动获取并显示该测试对象在磁盘中的保存路径,因此,应用程序可以操作系统自带的功能来直接读取测试对象的存储路径。
[0046]此处还需要说明的是,本申请上述示例中的文件系统函数可以是操作系统自带的CreateFile函数,无缓冲启动文件标志位可以是CreateFile函数中的FILE_FLAG_N0_BUFFERING标记,在用户点击该应用程序的应用界面提供的清除缓存控件之后,可以通过windows系统接口调用CreateFile函数来执行清理缓存操作,通过查看CreateFile函数的第六个参数中是否有FILE_FLAG_NO_BUFFERING标记,来确定是否启动缓存管理器去清除缓存。
[0047]优选地,本申请上述实施例中,在执行步骤S24中的调用启动文件系统函数之后,可以包括如下实施步骤:写入步骤:将无缓冲启动文件标志位写入启动文件系统函数的第一参数,并将测试对象的访问路径写入启动文件系统函数中的第二参数。
[0048]以将上述方案应用在冷启动测试耗时的场景中为例,当上述实施方案中的测试对象是一个文件目录时,测试对象的存储路径是一个目录文件路径,启动文件系统函数的第一参数可以是CreateFile函数的第六个参数,启动文件系统函数中的第二参数可以是CreateFile函数的第一个参数。由此可知,上述实施步骤可以实现通过系统提供的打开文件系统接口来调用启动文件系统函数(即CreateFile函数),并将测试对象的存储路径(可以是目录文件路径)传入CreateFile函数的第一个参数,将无缓存打开文件标志位FILE_FLAG_NO_BUFFERING传入CreateFile函数的第六个参数。
[0049]优选地,如图3所示,本申请上述实施例中,在执行步骤S26中的启动缓存管理器之前,可以包括如下实施步骤:
[0050]步骤S30,启动测试对象,生成测试对象的测试对象句柄。
[0051]步骤S32,发送测试对象句柄至客户端的关闭文件系统函数中,使得在客户端检测到关闭文件系统函数中包含文件句柄的情况下,关闭测试对象。
[0052]仍旧以将上述方案应用在冷启动测试耗时的场景中为例,可以在调用启动文件系统函数之后,启动缓存管理器之前执行上述步骤S30和步骤32。由此可知,当系统调用CreateFile函数之后,由于会将测试对象的存储路径传入CreateFile函数的第一个参数,将传入CreateFile函数的第六个参数,因此,在CreateFile函数包含无缓存打开文件标志位FILE_FLAG_NO_BUFFERING时,可启动测试对象(表示打开该测试对象,使得测试对象处于待操作状态,例如等待接收读写请求),同时会生成对应的测试对象句柄(如果测试对象为文件,则生成一个文件句柄),此时,与根据CreateFile函数的标记来启动测试对象相对应的是,需要通过系统提供的关闭文件系统接口来调用关闭文件系统函数(即CloseFile函数),系统会将生成的测试对象句柄传入CloseFile函数的一个参数,使得在CloseFile函数根据包含的测试对象句柄来关闭测试对象(表示终止该测试对象接收任何操作请求)。
[0053]由此可知,本申请提供的上述优选实施例中,客户端只要使用CreateFile函数传入FILE_FLAG_NO_BUFFERING标记来打开指定的待测试文件,再将这个待测试文件关闭,系统就会启动缓存管理器来清除该待测试文件的系统缓存。由此可知,系统通过调用CreateFile函数的功能可以对选中的待测试文件仅执行必要的启动和关闭操作之后,就会启动缓存管理器来清除缓存中存储的该待测对象的历史访问数据,从而实现模拟冷启动的目的。具有耗费资源少,清除缓存数据效率高的优点。
[0054]优选地,如图4所示,本申请上述实施例中,在执行步骤S30中的启动测试对象之后,可以包括如下实施步骤:
[0055]步骤S40,客户端的文件系统接收读写测试对象的读写请求。
[0056]步骤S42,使用启动文件系统函数来中断文件系统将读写请求发送给客户端的缓存管理器,并将读写请求直接发送给客户端的磁盘驱动器。
[0057]步骤S44,客户端磁盘驱动器使用读写请求访问磁盘,获取读写请求所需要的数据。
[0058]步骤S46,客户端的文件系统接收返回的读写请求所需要的数据。
[0059]仍旧以将上述方案应用在冷启动测试耗时的场景中为例,在上述步骤S40至步骤S46提供的实施例中,可以具体说明了系统启动测试对象之后,进行打开测试对象的功能。此处需要说明的是,结合图5可知,在调用启动文件系统函数,并启动测试对象之后,所执行的打开测试对象的方式,系统可以选择通过缓存读写测试对象,也可以选择不通过缓存直接读写测试对象,由于本申请提供的上述实施例中,系统调用了启动文件系统函数(即CloseFile函数),因此,会通过CloseFile函数
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1