一种性能监控方法及装置制造方法及图纸

技术编号:2822179 阅读:158 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种性能监控方法,该方法包括:在应用程序源代码中添加日志记录代码;启动跟踪后,捕获应用程序输出的调用过程日志;获取跟踪到所述日志记录代码时的性能监控数据;输出所述调用过程日志及所述性能监控数据。本发明专利技术还公开了一种性能监控装置,该方法能够在应用程序运行时简便地进行性能监控,降低了对用户专业技术、技能的要求。而且应用程序运行时随时可以监控,具有很强的灵活性。

【技术实现步骤摘要】

本专利技术涉及性能测试领域,特别是涉及一种性能监控方法及装置
技术介绍
应用程序在运行过程中可能会出现速度緩慢等性能问题,此时,通 常需要对该应用程序进行性能监控、跟踪、分析等,确定问题出现的具 体位置,进而执行故障诊断等操作,使得应用程序能够正常、高效地运 行。目前, 一般釆用专门的性能测试工具对应用程序进行性能监控。这 种专门的性能测试工具通常需要做专门的部署、编写专门的性能测试跟 踪脚本和用例,需要具有专业的测试技术和技能,因此,通常由专业的程序开发人员或测试人员使用。显然, 一般的用户无法满足如此强的专 业技术要求。而客户现场运行应用程序时如果没有部署这种专业的性能测试工具,则无法直接进行跟踪;但是即使部署了这种性能测试工具, 由于其跟踪结果展现复杂,需要专业的分析技能,因此当应用程序出现 性能问题时无法简易地进行系统性能跟踪及分析。而 一般的用户在对应 用程序进行性能测试时,通常只关心应用程序关键过程运行耗时、内存 占用等关键的性能数据,而不需要收集全部的性能信息。因此,需要本领域技术人员迫切解决的一个技术问题就是如何在应用 程序运行环境中,方便快捷地实现对应用程序的性能监控及跟踪,使得关键的 性能数据能够以较为直观的方式展现给用户。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种性能监控方法及装置,以解决现有 技术进行性能监控时操作复杂、需要较高的专业技术的问题。 为实现上述目的,本专利技术提供了如下方案一种性能监控方法,包括在应用程序源代码中添加日志记录代码; 启动跟踪后,捕获应用程序输出的调用过程日志; 获取跟踪到所述日志记录代码时的性能监控数据; 输出所述调用过程日志及所述性能监控数据。 其中,还包括将所述调用过程日志及性能监控数据,通过消息队列传递到独立于应用程 序的性能监控系统中;在所述性能监控系统中对获取的性能监控数据进行异步分析处理。其中,所述日志记录代码包括日志开始及日志结束代码,则对获取的性能 监控数据进行分析处理的具体实现包括创建计数器,并对所述计数器进行初始化;当跟踪到日志开始代码时,将对应的调用过程日志中的函数名及性能监控 数据,设置为在当前计数器数值的层次输出,再将计数器数值加一;当跟踪到日志结束代码时,将计数器数值减一,再将对应的调用过程日志 中的函数名及性能监控数据,设置为在减一后计数器数值的层次输出。其中,还包括根据同一层次中同一函数名的日志开始及日志结束的时间,输出该函数调 用过程的性能耗时。 其中,添加日志记录代码时还添加错误捕获代码,则输出的性能数据包括错误捕 获信息。一种性能监控装置,包括代码添加单元,用于在应用程序源代码中添加日志记录代码; 日志捕获单元,用于启动跟踪后,捕获应用程序输出的调用过程日志; 数据获取单元,用于获取跟踪到所述日志记录代码时的性能监控数据; 输出单元,用于输出所述调用过程日志及所述性能监控数据。 其中,还包括数据传递单元,用于将所述调用过程日志及性能监控数据,通过消息队列传递到独立于应用程序的性能监控系统中;分析处理单元,用于在所述性能监控系统中对获f^的性能监控数据进行异 步分析处理。其中,所述代码添加单元添加的日志记录代码包括日志开始及日志结束代码,则所述分析处理单元包括计数器创建子单元,用于创建计数器,并所述计数器进行初始化; 控制子单元,用于当跟踪到日志开始代码时,将对应的调用过程日志中的 函数名及性能监控数据,设置为在当前计数器数值的层次输出,再将计数器数 值加一;当跟踪到日志结束代码时,将计数器lt值减一,再将对应的调用过程 日志中的函数名及性能监控数据,设置为在减一后计数器数值的层次输出。 其中,还包括性能耗时计算单元,用于根据同一层次中同一函数名的日志开始及日志结 束的时间,计算出该函数调用过程的性能耗时; 所述输出单元用于还输出所述性能耗时。 其中所述代码添加单元还用于添加错误捕获代码;所述输出单元还用于输出错误捕获信息。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果首先,本专利技术利用统一封装的日志记录方法,在应用程序源代码中增加曰 志记录代码;跟踪时,可以获取跟踪到日志记录代码时的性能监控数据,同时 可以通过截获应用程序输出的调用过程日志来获取相应的函数名,然后输出调 用过程日志中的函数名及对应的性能监控数据,以此达到性能监控的目的。该 方法能够在应用程序运行时简便地进行性能监控,降低了对用户专业技术、技 能的要求。其次,对获取到的性能数据进行处理,使得性能数据能够以直观的方式展 现给用户,分析出函数间调用级次关系及过程耗时等信息,并进行展现,使得 用户不需要对性能数据进行再解析便可快速发现性能问题。再次,日志只简单输出代码调用的事件过程;性能数据通过消息队列传递 到性能监控系统,进行异步的分析处理,避免了对应用程序运行的性能影响,保证了性能监控数据的准确、有效性。最后,基于开关控制,不启动时不进行性能监控;应用程序运行时,可以 随时启动开关进行性能监控,具有很强的灵活性。附图说明图l是本专利技术实施例提供的方法的流程图2是本专利技术实施例中添加日志记录代码的界面示意图3是本专利技术实施例中展现性能监控数据的界面示意图4是本专利技术实施例提供的装置的示意图5是本专利技术实施例提供的另一装置的示意图。具体实施例方式为了使本专利技术的上述目的、特征及优点能够更加明显易懂,下面结合附图 和具体实施方式对本专利技术作进一步详细地说明。参见图1,本专利技术实施例提供的性能监控方法包括以下步骤 S101:在应用程序源代码中添加日志记录代码;本专利技术提供了规范的性能日志记录标准,参见图2,用户可以基于应用程 序源代码增加日志记录代码。由于制定了规范的标准,因此用户不需要具有太 高的专业技术。在实际应用中,本专利技术还可以提供统一的插件,在关键函数的 开始及结尾处自动增加日志记录代码,并说明函数功能。显然,该插件可以提 高日志记录代码的添加效率。其中,关键函数通常是指程序的保存、修改、删 除等功能控制函数,这些函数通常会对应用程序的性能产生影响,因此通常对 这些函数进行性能监控。用户手动添加日志记录代码时,通常也是在这些函数 的开始及结尾处添加。S102:启动跟踪后,捕获应用程序输出的调用过程日志;本专利技术实施例可以基于开关进行控制,即只有启动开关时,跟踪程序才开 始跟踪,同时应用程序可以调用本专利技术提供的函数,进行调用过程日志信息的 输出。否则,当开关不启动时,不会对应用程序进行跟踪,添加的日志记录代 码不会对应用程序产生影响。应用开关机制还可以实现在程序运行过程中随时进行监控,具有很强的灵活性。其中,应用程序输出调用过程日志时,可以只简单地输出代码调用的事件过程。例如在函数"K3Bills. frmBill.mnuFileSave-Click,,的开始处增加了 日志记录代码,则应用程序输出的日志中可以仅为该函数的函数名 "K3Bills. frmBill.mnuFileSave-Click",启动时间、占用内存等性能监控数据会通过本专利技术提供的消息队列传递到性能监控模块进行异步输出。因此启动 跟踪后,对原应用程序的性能影响也是非常小的,从而保证了获取的性能监控 数据的准确性。由于跟踪程序只能获取时间、占用内存等性能监控数据,而无法直接给出 获取本文档来自技高网...

【技术保护点】
一种性能监控方法,其特征在于,包括:在应用程序源代码中添加日志记录代码;启动跟踪后,捕获应用程序输出的调用过程日志;获取跟踪到所述日志记录代码时的性能监控数据;输出所述调用过程日志及所述性能监控数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:林锰杰徐英
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:94[中国|深圳]

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

1