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

文档序号:9288365阅读:来源:国知局
来选择不通过缓存直接读写测试对象,在实施过程中,系统会告知文件系统将测试对象的读写请求直接发送给磁盘驱动器来获取读写测试对象的读写结果,即不启动缓存管理器来接收上述读写请求。
[0060]优选地,本申请上述实施例中,步骤S42,使用启动文件系统函数来中断文件系统将读写请求发送给客户端的缓存管理器,将读写请求直接发送给客户端的磁盘驱动器的步骤可以包括如下实施方案:
[0061]步骤S421,调用启动文件系统函数,获取启动文件系统函数中的第一参数和第二参数。
[0062]步骤S423,在第一参数中读取到无缓冲启动文件标志位的情况下,停止启动缓存管理器来接收读写请求,启动磁盘驱动器来接收读写请求。其中,磁盘驱动器根据测试对象的访问路径将读写请求发送至磁盘对应的位置,使用读写请求处理测试对象,获取读写测试对象的读写结果。
[0063]优选地,在执行步骤S423中的停止启动缓存管理器来接收读写请求,启动磁盘驱动器之前,还可以包括如下实施方案:
[0064]检测步骤:检测启动文件系统函数中的第一参数是否包含无缓冲启动文件标志位,其中,如果检测到启动文件系统函数中的第一参数包含无缓冲启动文件标志位的情况下,则进入停止启动缓存管理器来接收读写请求,启动磁盘驱动器来接收读写请求的步骤;如果检测到第一参数中的无缓冲启动文件标志位为空,则启动缓存管理器接收读写请求。
[0065]综上可知,本申请提供的实施例一中的客户端是安装了一个用于清除缓存内容的应用程序的终端,使用该应用程序清除缓存的过程不需要重启客户端,以将本申请实施例一提供的方案应用在冷启动测试耗时的测试场景中为例,可以实现在冷启动一次测试对象,并记录此次冷启动测试对象的耗时之后,启动客户端的应用程序快速清除该测试对象缓存的数据,然后再对测试对象执行一轮新的冷启动测试耗时,由此,在对测试对象执行多次冷启动测试耗时的测试过程中,无需重启客户端,只需要在进行测试之前启动客户端的应用程序来清除测试对象的缓存内容即可。下面结合图5所示,就本申请的方案应用在上述冷启动测试耗时的应用场景中所实现的功能进行详细描述。
[0066]由于冷启动和热启动耗时的关键差别在于测试对象启动时所需要的文件是否缓存在物理内存中,所以本发明提供了一种无需启动客户端,就可以清除系统对测试对象的缓存,从而模拟对该测试对象进行冷启动测试耗的过程。
[0067]首先,系统在初次启动客户端之后,初次启动测试对象,该过程是一次冷启动过程,该过程中包括对打开的测试对象进行访问及操作,系统会缓存测试对象在该冷启动过程中产生的访问数据(即冷启动过程中所需要的文件数据)。
[0068]然后,在客户端启动用于清除缓存的工具,该工具是一个可执行的应用程序,在运行该应用程序的过程中,需要在应用程序提供的应用界面上,先选择添加至少一个需要清除缓存的测试对象(可以包括文件目录或文件),该选择添加的过程,就是指定一个文件目录或者文件的过程,即遍历该指定的文件目录下所有文件,或是指定文件目录下的一个文件,从而获取文件目录或文件的文件路径,其中,该文件路径就是需要清理缓存的存储路径。
[0069]接着,在点击上述应用程序的应用界面上的清理缓存按钮之后,启动系统通过打开文件系统接口来调用CreateFile函数,将获取到的文件目录或文件的文件路径传入该CreateFile函数的第一个参数,并将FILE_FLAG_NO_BUFFERING标记传入该CreateFile函数的第六个参数(可以通过将FILE_FLAG_NO_BUFFERING标记位置位为I来实现传入第六个参数的过程)。
[0070]此时,在检测到上述CreateFile函数包含FILE_FLAG_NO_BUFFERING标记位时,打开文件目录或文件,并生成对应的目标文件句柄,并通过系统提供的关闭文件系统接口来调用关闭文件系统函数(即CloseFile函数),系统会将生成的目标文件句柄传入CloseFile函数的一个参数,使得在CloseFile函数根据包含的目标文件句柄来关闭之前打开的文件目录或文件。其中,上述打开文件目录或文件可以包括两种方式:通过缓存读写文件(即客户端的文件系统接收缓存读写请求),或者,不通过缓存直接读写文件(即客户端的文件系统接收无缓存读写请求)。
[0071]接着,对应windows系统接口调用CreateFile函数,检测该CreateFile函数的第六个参数中是否有FILE_FLAG_NO_BUFFERING标记,如果没有则通过图5中实线所表示的需要通过缓存进行读写文件的方式,来执行打开文件目录或文件,如果有上述标记,则通过图5中虚线所表示的不需要通过缓存,而直接访问磁盘驱动程序读写磁盘中的文件的方式,来执行打开文件目录或文件。
[0072]另外,在采用图5中虚线所表示的不需要通过缓存,而直接访问磁盘驱动程序读写磁盘中的文件的方式时,应用程序会启动缓存管理器来清除该文件目录或文件的系统缓存。
[0073]综上可知,本申请上述示例,可以使用应用程序来启动使用CreateFile函数传入FILE_FLAG_NO_BUFFERING标记,执行采用不通过缓存直接读写文件的方式来打开指定文件,再将这个文件关闭,该过程中系统就启动缓存管理器来清除测试对象的缓存。从而达到模拟冷启动的目的。
[0074]此处需要进一步说明的是,上述应用程序运行后可以显示一个应用界面,可以在该应用界面的左侧设置“要清理的文件或目录”列表的显示区域,选择添加的需要清除缓存的文件和目录显示在该区域中,系统遍历已添加在左侧“要清理的文件或目录”列表中的文件和目录。通过点击应用界面上的清理缓存按钮执行清理缓存操作,如果选中的是文件,则对该文件调用上述执行过程,来清理文件缓存,如果选中的是目录,则遍历该目录中所有文件,调用上述执行过程,来清理目录文件缓存,执行完成后添加在左侧“要清理的文件或目录”列表中的所有文件(包括目录中包含的文件)的缓存全部会被清空。另外,可以在上述应用界面的右侧输出清除缓冲的日志信息,显示清理缓存是否成功。
[0075]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0076]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0077]实施例2
[0078]在描述本申请的各实施例的进一步细节之前,将参考图6来描述可用于实现本申请的原理的一个合适的装置结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本申请的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本申请,但它并不意味着限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。
[0079]在其最基本的配置中,图6是根据本发明实施例二的清除客户端缓存的装置的示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。
[0080]如图6所示,本申请提供的清除客户端缓存的装置可以包括:一冷启动处理模块601、一获取模块603、一调用模块605、一启动模块607、一清除模块609。
[0081]其中,冷启动处理模块601,用于记录客户端的测试对象在冷启动过程中的访问数据,并保存访问数据至缓存;获取模块603,用于启动客户端的应用程序,使用应用程序抓取测试对象的存储路径;调用模块605,用于在触发应用界面上的清除缓存控件之后,调用启动文件系统函数;启动模块607,用于在启动文件系统函数中包含无缓冲启动文件标志位的情况下,启动缓存管理器;清除模块609,用于缓存管理器根据测试对象的存储路径,清除测试对象在缓存中保存的访问数据。
[0082]上述装置方案实现了,在冷启动测试对象之后,需要先关闭该测试对象,才可以使用应用程序(即缓存清理工具)来选择冷启动过程中读取的测试对象(可以是文件和目录),并对该测试对象执行清理缓存的功能。在完成清除
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1