用于监测程序运行时耗时数据的方法及系统技术方案

技术编号:15329379 阅读:128 留言:0更新日期:2017-05-16 13:04
本发明专利技术公开了一种用于监测程序运行时耗时数据的方法及系统,属于计算机技术领域。方法包括:获取插桩点的位置信息和插桩代码,根据插桩点的位置信息和插桩代码对被测程序进行插桩;插桩点至少为两个;运行插桩后的被测程序,当插桩后的被测程序中的插桩点被触发时,执行与触发的插桩点对应的插桩代码,获取执行插桩代码输出的桩点数据;桩点数据包括:时间戳、事件标签和堆栈信息;根据桩点数据,生成被测程序在运行至至少两个插桩点之间的耗时数据。本发明专利技术有效地帮助开发者定位到程序运行过程中耗时的关键节点与程序各个阶段的耗时分布,极大地压缩了开发成本,便利了程序优化过程。

Method and system for monitoring time-consuming data during program operation

The invention discloses a method and a system for monitoring the time consuming data when a program runs, belonging to the technical field of computer. The instrumentation point method comprises the following steps: acquiring the position information and the instrumentation code, according to the instrumentation point position information and instrumentation code of the tested program instrumentation; the instrumentation point is at least two; the program tested running after instrumentation, when measured after instrumentation instrumentation point in the program when triggered, stub code corresponding execution and trigger the instrumentation point, access point data output code inserted pile pile; pile point data includes a time stamp, event label and stack information; according to the pile point data, generate the tested program in the run-up to the time-consuming data between at least two instrumentation points. The invention effectively helps the developer to locate the time-consuming distribution of the critical nodes and the various stages of the program during the operation of the program, thereby greatly compressing the development cost and facilitating the program optimization process.

【技术实现步骤摘要】
用于监测程序运行时耗时数据的方法及系统
本专利技术涉及计算机
,尤其涉及一种用于监测程序运行时耗时数据的方法及系统。
技术介绍
程序在开发过程中或在应用过程中,需要对程序的性能进行测量监控,特别是程序的运行速度也就是耗时数据进行监控。现有的技术方案在监控程序运行状态时,一般将程序运行时数据无差别地展示或记录下来,然后通过实时展示或报表的形式展示出来,若发现数据异常时需要人工进行筛选数据,并将多次数据整合处理,这一过程由于运行时信息过于繁杂往往难于操作,若修改程序后需要再次展示数据则需要重复上述操作,操作流程比较重。
技术实现思路
有鉴于此,本专利技术提供了一种用于监测程序运行时耗时数据的方法,包括:获取插桩点的位置信息和插桩代码,根据所述插桩点的位置信息和插桩代码对被测程序进行插桩;所述插桩点至少为两个;运行所述插桩后的被测程序,当所述插桩后的被测程序中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括:时间戳、事件标签和堆栈信息;根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。进一步地,所述插桩点为系统自动设置的插桩点;或者,所述插桩点为用户自定义设置的插桩点。进一步地,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据,包括:将所述桩点数据发送给服务器;服务器根据接收到的桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。进一步地,所述将所述桩点数据发送给服务器,包括:在所述桩点数据满足预设的时间阈值后,将所述桩点数据发送给服务器;或者,在所述桩点数据满足预设的数据量阈值后,将所述桩点数据发送给服务器。进一步地,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据之后,还包括:获取用户输入的筛选条件,根据所述筛选条件对接收到的桩点数据筛选、整合;所述筛选条件包括事件标签和日期。进一步地,所述获取执行所述插桩代码输出的桩点数据之后,还包括:对接收到的桩点数据进行存储。进一步地,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据之后,还包括:对接收到的桩点数据进行分析处理,并生成图形化数据输出。进一步地,所述获取的执行所述插桩代码输出的桩点数据为被测程序多次运行时的桩点数据;对接收到的桩点数据进行分析处理,并生成图形化数据输出,包括:对被测程序每次运行时的桩点数据进行整合,生成被测程序每次运行时的耗时数据;对所述耗时数据进行分析,删除脏数据;根据被测程序多次运行时的耗时数据生成被测程序耗时数据的图形化数据。根据本专利技术的另一专利技术,提供了一种用于监测程序运行时耗时数据的系统,包括:插桩模块,用于获取插桩点的位置信息和插桩代码,根据所述插桩点的位置信息和插桩代码对被测程序进行插桩;所述插桩点至少为两个;桩点数据获取模块,用于运行所述插桩后的被测程序,当所述插桩后的被测程序中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括:时间戳、事件标签和堆栈信息;耗时数据生成模块,用于根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。进一步地,所述插桩模块包括:自动插桩单元,用于获取自动设置的插桩点;自定义插桩单元,用于获取用户自定义设置的插桩点。进一步地,所述系统包括服务器,所述耗时数据生成模块包括:发送单元,用于将所述桩点数据发送给服务器;处理单元,用于服务器根据接收到的桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。进一步地,所述发送单元包括:第一发送子单元,用于在所述桩点数据满足预设的时间阈值后,将所述桩点数据发送给服务器;第二发送子单元,用于在所述桩点数据满足预设的数据量阈值后,将所述桩点数据发送给服务器。进一步地,还包括:筛选模块,用于获取用户输入的筛选条件,根据所述筛选条件对接收到的桩点数据筛选、整合;所述筛选条件包括事件标签和日期。进一步地,还包括:存储模块,用于对接收到的桩点数据进行存储。进一步地,还包括:图形化输出模块,用于对接收到的桩点数据进行分析处理,并生成图形化数据输出。进一步地,所述图形化输出模块包括:单次数据整合单元,用于对被测程序每次运行时的桩点数据进行整合,生成被测程序每次运行时的耗时数据;数据清理单元,用于对所述耗时数据进行分析,删除脏数据;图形化单元,用于根据被测程序多次运行时的耗时数据生成被测程序耗时数据的图形化数据。本专利技术提供的方案可以实现通过获取至少两个插桩点的位置信息和插桩代码,根据所述插桩点的位置信息和插桩代码对被测程序进行插桩;运行所述插桩后的被测程序,当所述插桩后的被测程序中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括:时间戳、事件标签和堆栈信息;以及根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据;有效地帮助开发者定位到程序运行过程中耗时的关键节点与程序各个阶段的耗时分布,并且这些信息都是跟随系统运行即时产生的,非常有利于开发者在程序优化过程中做数据比对。本系统为程序优化提供了一个非常便捷的发现问题的手段,与证明优化成果的途径,极大地压缩了开发成本,便利了程序优化过程。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是根据本专利技术实施例提供的方法的计算机终端的硬件结构框图;图2是根据本专利技术实施例1提供的用于监测程序运行时耗时数据的方法的流程图;图3是实施例1中步骤203的流程图;图4是实施例1中对桩点数据进行整合后的数据报表示例;图5是实施例1中多次运行被测程序时输出的图形化数据的示意图;图6是实施例2提供的另一种用于监测程序运行时耗时数据的方法的流程图;图7是实施例3提供的用于监测程序运行时耗时数据的系统的结构框图;图8是实施例4提供的另一种用于监测程序运行时耗时数据的系统的结构框图;图9是根据本专利技术实施例的计算机终端的结构框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有本文档来自技高网
...
用于监测程序运行时耗时数据的方法及系统

【技术保护点】
用于监测程序运行时耗时数据的方法,其特征在于,包括:获取插桩点的位置信息和插桩代码,根据所述插桩点的位置信息和插桩代码对被测程序进行插桩;所述插桩点至少为两个;运行所述插桩后的被测程序,当所述插桩后的被测程序中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括:时间戳、事件标签和堆栈信息;根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。

【技术特征摘要】
1.用于监测程序运行时耗时数据的方法,其特征在于,包括:获取插桩点的位置信息和插桩代码,根据所述插桩点的位置信息和插桩代码对被测程序进行插桩;所述插桩点至少为两个;运行所述插桩后的被测程序,当所述插桩后的被测程序中的所述插桩点被触发时,执行与触发的所述插桩点对应的所述插桩代码,获取执行所述插桩代码输出的桩点数据;所述桩点数据包括:时间戳、事件标签和堆栈信息;根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。2.根据权利要求1所述的用于监测程序运行时耗时数据的方法,其特征在于,所述插桩点为系统自动设置的插桩点;或者,所述插桩点为用户自定义设置的插桩点。3.根据权利要求1所述的用于监测程序运行时耗时数据的方法,其特征在于,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据,包括:将所述桩点数据发送给服务器;服务器根据接收到的桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据。4.根据权利要求3所述的用于监测程序运行时耗时数据的方法,其特征在于,所述将所述桩点数据发送给服务器,包括:在所述桩点数据满足预设的时间阈值后,将所述桩点数据发送给服务器;或者,在所述桩点数据满足预设的数据量阈值后,将所述桩点数据发送给服务器。5.根据权利要求1所述的用于监测程序运行时耗时数据的方法,其特征在于,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据之后,还包括:获取用户输入的筛选条件,根据所述筛选条件对接收到的桩点数据筛选、整合;所述筛选条件包括事件标签和日期。6.根据权利要求1所述的用于监测程序运行时耗时数据的方法,其特征在于,所述获取执行所述插桩代码输出的桩点数据之后,还包括:对接收到的桩点数据进行存储。7.根据权利要求1所述的用于监测程序运行时耗时数据的方法,其特征在于,所述根据所述桩点数据,生成被测程序在运行至所述至少两个插桩点之间的耗时数据之后,还包括:对接收到的桩点数据进行分析处理,并生成图形化数据输出。8.根据权利要求7所述的用于监测程序运行时耗时数据的方法,其特征在于,所述获取的执行所述插桩代码输出的桩点数据为被测程序多次运行时的桩点数据;对接收到的桩点数据进行分析处理,并生成图形化数据输出,包括:对被测程序每次运行时的桩点数据进行整合,生成被测程序每次运行时的耗时数据;对所述耗时数据进行分析,删除脏数据;根据被测程序多次运行...

【专利技术属性】
技术研发人员:郭晓彬
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1