[发明专利]一种统计程序访问文件次数和耗时的方法及装置在审
申请号: | 201810005246.6 | 申请日: | 2018-01-03 |
公开(公告)号: | CN108304304A | 公开(公告)日: | 2018-07-20 |
发明(设计)人: | 周伟杰;谢鸿雁;张治良;张经生;朱海旺;张健 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;成都西山居互动娱乐科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519000 广东省珠*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 钩子函数 动态库 耗时 采样数据 程序访问 进程 监视 卸载 统计 检测 采样数据保存 输出采样数据 计算机程序 测试过程 创建文件 访问文件 继续执行 外部文件 性能瓶颈 挂起 捕获 直观 开发 | ||
本发明公开了一种统计程序访问文件次数和耗时的方法,包括以下步骤:启动待检测的程序,并挂起程序对应的进程;将监视动态库注入进程并启动所述监视动态库,其中,监视动态库包括采样数据的钩子函数、安装及卸载钩子函数的安装卸载函数和统计及输出采样数据的整理函数;让进程继续执行,此时通过钩子函数捕获进程打开和/或创建文件事件以采样数据;终止进程前,整理函数将采样数据保存为外部文件。本发明的有益效果为:在保持待检测的程序自身原有代码情况下,检测并统计程序在测试过程中访问文件次数和耗时等信息,方便开发人员直观地确定计算机程序的性能瓶颈。
技术领域
本发明涉及计算机程序性能检测领域,尤其涉及一种统计程序访问文件次数和耗时的方法及装置。
背景技术
在计算机程序的开发过程中,程序的性能检测与优化是必不可少的一个环节。一般地,被检测的对象包括CPU、内存、输入输出(IO)设备和网络连接等等。其中,磁盘的输入输出通常是计算机执行最慢的子系统。这是由于访问磁盘时,CPU需要通过譬如转轴、寻轨等机械操作,确定待输入或输出内容所在扇区,从而限制了磁盘输入输出的执行速度,并导致磁盘访问速度和内存访问速度之间存在数量级的差别。
由于磁盘的输入输出是大部分计算机程序中不可或缺的执行操作,因此这也是最容易出现性能瓶颈的地方。但是,目前面向磁盘的输入输出性能的性能检测工具,例如Crystal DiskATTO Disk和Crystal Disk等等,主要是检测每次磁盘的输入输出操作的速度,不能以程序执行过程中所访问的文件为单位,进行统计分析。鉴于上述原因,计算机程序的开发人员需要通过反复设置断点,并通过上述工具实时监视当前磁盘的输入输出状况,以大致确定性能瓶颈的具体位置。因此,开发人员不能通过这类工具直观地确定计算机程序的性能瓶颈准确位置。
发明内容
本发明的目的是解决现有技术的不足,提供一种统计程序访问文件次数和耗时的方法及装置,能够获得方便地获取计算机程序的文件访问信息,以直观地确定其性能瓶颈位置的效果。
为了实现上述目的,本发明采用以下的技术方案。
首先,本发明提出一种统计程序访问文件次数和耗时的方法,包括以下步骤:启动待检测的程序,并挂起程序对应的进程;将监视动态库注入进程并启动所述监视动态库,其中监视动态库包括采样数据的钩子函数,安装及卸载钩子函数的安装卸载函数,以及,统计及输出采样数据的整理函数;让进程继续执行,此时通过监视动态库的钩子函数捕获进程打开和/或创建文件事件以采样数据;终止进程前,整理函数将采样数据保存为外部文件。
在本发明的上述方法实施例中,监视动态库注入进程并启动所述监视动态库的步骤还包括如下子步骤:远程启动监视动态库,使用安装卸载函数安装钩子函数;初始化钩子函数,监控待检测的程序内的打开和/或创建文件的函数。
在本发明的上述方法实施例中,终止进程还包括如下子步骤:以文件为单位,由整理函数统计各份文件的采样数据;启动安装卸载函数卸载钩子函数。
在本发明的上述方法实施例中,采样数据至少包括被打开文件的路径、被打开的次数、打开失败次数以及打开耗时总和。
进一步地,在本发明的上述方法实施例中,整理函数根据各份文件被打开的次数排序,并将排序后的采样数据保存到外部文件。
进一步地,在本发明的上述方法实施例中,整理函数根据各份文件被打开的总耗时排序,并将排序后的采样数据保存到外部文件。
再进一步地,在本发明的上述方法实施例中,外部文件保存排序后采样数据的前指定个数的记录。
进一步地,在本发明的上述方法实施例中,整理函数根据各份文件被打开的次数以及打开耗时总和,形成各份文件每次打开的耗时平均值,保存到外部文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;成都西山居互动娱乐科技有限公司,未经珠海金山网络游戏科技有限公司;成都西山居互动娱乐科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810005246.6/2.html,转载请声明来源钻瓜专利网。