监视移动应用性能制造技术

技术编号:13247028 阅读:40 留言:0更新日期:2016-05-15 11:11
本公开的各方面涉及在实际使用期间监视应用性能,尤其是移动应用性能。描述了检测移动应用二进制文件以自动标识用户事务中的关键路径,包括跨异步调用边界。踪迹数据由被检测应用记录以捕捉UI操纵、线程执行、异步调用和回调、UI更新和/或线程同步。踪迹数据被分析以帮助开发者改善应用性能。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】监视移动应用性能 WS 当前在各种应用市场中存在超过百万个移动应用。用户依赖于这些应用来进行各 种各样的任务,诸如在社交联网站点上张贴评论、进行在线银行业务等。 移动应用市场是高度竞争性的。结果,开发者力图维护和改善他们应用的质量。实 验室测试提供了一些指导,但却很少是充足的,因为移动应用是高度交互性的,并且难以在 实验室中模拟全部范围的用户交互。此外,移动应用经历各种各样的"实地(in the field)"环境状况,诸如网络连通性(Wi-Fi或3G)、GPS信号质量、以及电话硬件,这些环境状 况在实际用户之间可能变动很大。其他状况也被考虑进来,例如,一些平台API取决于电池 水平而改变它们的行为。这些多样化的状况是难以在实验室中再现的。 结果,为了改善应用质量,应用开发者/团队需要理解应用在实地如何执行。然而, 移动应用的异步、多线程化的本质使得难以跟踪应用使用和应用性能来收集数据。移动平 台中固有的资源限制与各种困难复合,例如添加辅助监视应用性能的跟踪代码不会不利地 影响用户体验。 挺塗 提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表 性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在 以限制所要求保护的主题的范围的任何方式来使用。 简言之,本文描述的主题内容的各方面涉及一种其中自动检测应用代码的技术, 包括将一个或多个记录函数以及一个或多个事件处理程序插入应用代码中以记录事件。还 描述了将代码插入应用代码中来为异步调用(asynchronous cal 1)的调用(invocation)指 派标识符,并且使提供给该异步调用的回调绕路到绕路代码以基于标识符将该回调与该异 步调用相关联。 在一方面,检测器被配置成用记录功能以及用将异步调用与回调相关联的代码来 检测应用代码。分析组件处理在应用代码的执行期间经由记录功能被记录到有向无环图中 的数据,这些数据表示在执行期间发生的事务。 在一方面,在被检测应用代码的执行期间,经由被检测应用代码来记录踪迹数据。 踪迹数据对应于以下至少一者:用户界面(UI)操纵、线程执行、异步调用和回调、UI更新或 线程同步。踪迹数据被上传以供分析处理。 结合附图阅读以下详细描述,本专利技术的其他优点会变得显而易见。 附图简述 作为示例而非限制,在附图中示出了本专利技术,附图中相同的附图标记指示相同或 相似的元素,附图中: 图1是示出根据一个或多个示例实施例的各种示例组件的框图,这些示例组件包 括监视移动应用性能的检测和分析系统。 图2是示出根据一个或多个示例实施例的经由日志记录程序和绕路库来检测应用 的结构的框图。 图3是根据一个或多个示例实施例的例如示出用户事务的代码的示例执行踪迹。 图4是根据一个或多个示例实施例的例如示出用户事务和其中的关键路径的基于 位置的应用代码的示例执行踪迹。 图5是根据一个或多个示例实施例的示出示例应用崩溃/异常路径的示例执行踪 迹。 图6是示出根据一个或多个示例实施例的涉及将异步调用与对应回调进行匹配的 示例步骤的流程图。 图7是根据一个或多个示例实施例的借此异步调用可以被绕过以将调用与对应回 调进行匹配的一种示例方式的表示。图8A和8B是根据一个或多个示例实施例的从用于表示用户事务的记录的踪迹数 据中处理的有向无环图的表示。 图9是示出根据一个或多个示例实施例的可被采用来检测代码、执行被检测代码 以收集踪迹数据以供分析、以及分析踪迹数据的示例步骤的流程图。 图10是表示移动计算设备形式的示例计算环境的框图,其中本文所描述的主题内 容的各方面可被并入该计算环境中。 详细描述 本文描述的技术的各方面一般涉及监视移动应用性能,包括通过检测移动应用代 码(二进制代码)来收集踪迹数据(踪迹)。这些踪迹被分析以自动标识用户事务中的关键路 径,包括跨异步调用边界,其中一般来说,用户感知到的等待时间是在关键路径的概念中来 阐述的,因为关键路径提供了用户事务中的瓶颈路径,从而改变关键路径的任一部分的长 度会改变用户感知到的等待时间。一般来说,关键路径开始于用户操纵事件,而结束于UI更 新事件。如本文描述的用户"事务"开始于对UI的用户操纵,而结束于完成应用中由该操纵 触发的同步和异步任务(线程)。如将理解的,在事务期间,可以采取许多中间动作。 在一方面,提供不要求来自开发者的输入也不要求对操作系统的任何改变的轻量 检测系统。在一种实现中,检测机制一般通过插入事件处理程序来检测移动应用。性能数据 被实地地收集,并且可被上传到中央服务器以供离线分析。 如将理解的,本文描述的检测系统帮助应用开发者诊断他们的应用实地经历的性 能瓶颈和故障。检测机制通过用户事务的代码向开发者提供关于关键路径的信息。这一信 息一般可用于将开发者指向改善用户体验所需的优化。 应当理解,本文中的任何示例均是非限制的。因此,本专利技术不限制于本文所述的任 何具体的实施例、方面、概念、结构、功能或示例。相反,本文中所描述的任何一个实施例、方 面、概念、结构、功能或示例都是非限制性的,并且一般而言可以在计算和成像技术中提供 好处和优点的各种方式来使用本专利技术。 图1是示出基于本文描述的技术的涉及检测和分析系统102的一种实现(例如架 构)的示例概念的框图。示例性系统102用相对较小的开销来捕捉构建用户事务的执行踪迹 以及标识他们的关键路径和异常路径所需的信息。注意到,在决定要捕捉什么的时候,在开 销与向开发者给出有用反馈的能力之间存在折衷。如图1所示,应用104(例如二进制文件)使用进入被检测应用108中的检测工具(检 测程序106)来检测,如本文所述。注意到,尽管应用二进制文件被用于描述该技术,但任何 代码均可受益于本文描述的技术,例如,操作系统组件、服务等等可被类似地检测和分析, 即便它们在技术上不被认为是应用。 在一种实现中,开发者仅需要向检测程序106提供应用二进制文件;不需要其他输 入或源代码注释。对于电话应用,检测程序106利用这样一个事实:电话应用常常使用较高 级的框架来编写并且被编译成中间语言(字节代码)。例如,一种或多种实现被设计成用于 使用Siiverlight? :·框架(被Windows?电话市场中的大部分应用所使用)编写并被编译成 MSIL(Microsoft(S」中间语言)字节代码的应用。MSIL保留程序的结构,包括类型、方法和继 承信息。 用户从应用商店110获得被检测应用108的实例。当用户在他们的设备112上实地 运行被检测应用108时,踪迹数据114被收集并上传到服务器116。例如,在基于Windows?l 的电话中,后台传输服务(BTS)可用于上传踪迹数据114; 一般而言,在没有前台应用正在运 行时,BTS上传数据,并且在网络中断和丢失的情况下提供可靠传输服务。 多个因素影响移动应用的性能,包括用户输入、环境条件等等。应用执行踪迹可以 用不同详细程度来捕捉。踪迹数据由分析组件118分析,并且发现/开发者反馈120例如经由基于web的接口 变得对开发者/团队122可用。开发者/团队122接着可以例如经由经更新的版本来改善应 用。习得的知识还能够改善其他应用。 一般而言,踪迹数据114对应于捕捉本文档来自技高网...
监视移动应用性能

【技术保护点】
一种方法,包括:自动检测应用代码,包括将一个或多个记录函数以及一个或多个事件处理程序插入所述应用代码以记录事件,以及将代码插入所述应用代码以为异步调用的调用指派标识符,并且使提供给所述异步调用的回调绕路到绕路代码以基于所述基于所述标识符将所述回调与所述异步调用相关联。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:L·拉温德拉纳斯西瓦林甘姆J·D·帕德耶S·阿加瓦尔R·玛哈简I·奥博米勒S·沙亚德
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1