用于指示应用代码的执行的系统和方法.pdf

上传人:r7 文档编号:973760 上传时间:2018-03-22 格式:PDF 页数:22 大小:737.33KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110214832.X

申请日:

2011.07.20

公开号:

CN102339253A

公开日:

2012.02.01

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20110720|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

通用电气公司

发明人:

D·维尔奇曼

地址:

美国纽约州

优先权:

2010.07.20 US 12/839726

专利代理机构:

中国专利代理(香港)有限公司 72001

代理人:

柯广华;朱海煜

PDF下载: PDF下载
内容摘要

本发明名称是“用于指示应用代码的执行的系统和方法”。提供一种用于指示应用源代码(405)的执行的系统。该系统包括:输入接口(130),配置成接收应用源代码内的感兴趣源代码部分的指示,其中应用源代码至少包括描述多个操作的多个人类可读语句(535);以及处理器(115),耦合到输入接口,并且编程为基于应用源代码来生成应用对象代码(420),其中应用对象代码至少包括多个计算机可执行指令以及与感兴趣源代码部分对应的感兴趣对象代码部分,执行应用对象代码,并且对于感兴趣对象代码部分的每次执行,将执行事件与存储器装置(110)中的对应感兴趣源代码部分关联。

权利要求书

1: 一种用于指示应用源代码 (405) 的执行的系统, 所述系统包括 : 输入接口 (130), 配置成接收所述应用源代码内的感兴趣源代码部分的指示, 其中所述 应用源代码至少包括描述多个操作的多个人类可读语句 (535) ; 以及 处理器 (115), 耦合到所述输入接口并且编程为 : 基于所述应用源代码来生成应用对象代码 (420), 其中所述应用对象代码至少包括多 个计算机可执行指令以及与所述感兴趣源代码部分对应的感兴趣对象代码部分 ; 执行所述应用对象代码 ; 以及 对于所述感兴趣对象代码部分的每次执行, 将执行事件与存储器装置 (110) 中的对应 感兴趣源代码部分关联。
2: 如权利要求 1 所述的系统, 还包括呈现接口 (120), 所述呈现接口 (120) 配置成基于 与所述感兴趣源代码部分关联的执行事件的数量来指示所述感兴趣源代码部分已被执行。
3: 如权利要求 2 所述的系统, 其中, 所述感兴趣源代码部分是第一感兴趣源代码部分, 并且所述呈现接口 (120) 还配置成以图形方式区分所述第一感兴趣源代码部分和没有与 执行事件关联的第二感兴趣源代码部分。
4: 如权利要求 3 所述的系统, 其中, 将所述第一感兴趣源代码部分与多个执行事件关 联, 并且所述呈现接口 (120) 还配置成以图形方式区分所述第一感兴趣源代码部分和与一 个执行事件关联的第二感兴趣源代码部分。
5: 如权利要求 2 所述的系统, 其中, 所述感兴趣对象代码部分是所述应用对象代码 (420) 的第一部分, 并且所述呈现接口 (120) 配置成指示在所述处理器 (115) 执行所述应用 对象代码的第二部分时所述感兴趣源代码部分已被执行。
6: 如权利要求 1 所述的系统, 其中, 所述输入接口 (130) 还配置成在所述处理器 (115) 执行所述应用对象代码 (420) 时接收所述感兴趣源代码部分的指示, 并且所述处理器还编 程为将执行断点与所述感兴趣对象代码部分关联, 而不终止所述应用对象代码的执行。
7: 如权利要求 1 所述的系统, 其中, 所述输入接口 (130) 配置成接收与所述应用源代码 (405) 内的一个人类可读语句对应的至少一个感兴趣源代码部分的指示。
8: 一种用于指示应用源代码 (405) 的执行的系统, 所述系统包括 : 存储器装置 (110), 配置成存储应用源代码和应用对象代码 (420), 其中所述应用源代 码至少包括描述多个操作的多个人类可读语句, 并且所述应用对象代码至少包括与所述多 个人类可读语句对应的多个计算机可执行指令 ; 处理器 (115), 耦合到所述存储器装置并且编程为 : 确定与所述应用源代码内的多个感兴趣源代码部分中的每个感兴趣源代码部分对应 的感兴趣对象代码部分 ; 执行所述应用对象代码 ; 以及 对于每个感兴趣对象代码部分的每次执行, 将执行事件与所述存储器装置中的对应感 兴趣源代码部分关联。
9: 如权利要求 8 所述的系统, 还包括呈现接口 (120), 所述呈现接口 (120) 耦合到所述 处理器 (115), 并且配置成指示与所述多个感兴趣源代码部分中的第一感兴趣源代码部分 关联的执行事件的数量。
10: 如权利要求 9 所述的系统, 其中, 所述呈现接口 (120) 配置成通过以图形方式区分 2 所述第一感兴趣源代码部分和与不同数量的执行事件关联的第二感兴趣源代码部分来指 示执行事件的数量。

说明书


用于指示应用代码的执行的系统和方法

    【技术领域】
     一般来说, 本文所公开的主题涉及应用源代码管理, 更具体来说, 涉及用于检测和 指示人类可读源代码的执行的系统和方法。背景技术
     至少一些已知计算机系统使用测试代码以基于预定义输入和预期输出来自动执 行应用代码。 此外, 一些已知系统在测试期间跟踪应用代码执行, 并且产生指示执行了源代 码的哪一个或哪一些部分的统计和 / 或报告。这类报告可称作 “代码覆盖报告” 。
     一般来说, 已知的执行跟踪系统和执行跟踪方法要求对应用代码进行修改和 / 或 添加。 但是, 对应用代码进行修改或添加要求投入时间, 并且可能负面影响关联应用的执行 速度和 / 或行为。因此, 可能使测试延迟。此外, 取决于对应用的不利影响的严重性, 已知 的跟踪系统可被认为不适合用于其中执行速度关键的实况或 “生产” 上下文。另外, 可引起 等待代码覆盖报告的附加延迟, 因为这类报告仅在所有测试代码的执行完成时才产生。 此外, 现有系统还可取决于应用代码内的感兴趣部分的静态预执行定义, 并且因 而这类系统要求用户终止并且重新执行应用, 以便使跟踪其执行的感兴趣部分能够被修 改。 此外, 现有方法局限于仅通过二元方式来指示是否已执行代码的一部分, 而不能够区分 很少执行与经常执行的代码。
     发明内容 提供本概述以便以简化形式介绍概念的选择, 下面在详细描述中进一步描述这些 概念。本概述不是要标识要求保护的主题的关键特征或必要特征, 也不是要用于帮助确定 要求保护的主题的范围。
     在一个方面, 提供一种用于指示应用源代码的执行的系统。 该系统包括输入接口, 该输入接口配置成接收应用源代码内的感兴趣源代码部分的指示。 应用源代码至少包括描 述多个操作的多个人类可读语句。 该系统还包括处理器, 处理器耦合到输入接口, 并且编程 为基于应用源代码来生成应用对象代码。 应用对象代码至少包括多个计算机可执行指令以 及与感兴趣源代码部分对应的感兴趣对象代码部分。处理器还编程为执行应用对象代码, 并且对于感兴趣对象代码部分的每次执行, 将执行事件与存储器装置中的对应感兴趣源代 码部分关联。
     在另一个方面, 提供一种用于指示应用源代码的执行的系统。该系统包括存储器 装置, 存储器装置配置成存储应用源代码和应用对象代码。应用源代码至少包括描述多个 操作的多个人类可读语句, 并且应用对象代码至少包括与多个人类可读语句对应的多个计 算机可执行指令。 该系统还包括处理器, 处理器耦合到存储器装置, 并且编程为确定与应用 源代码内的多个感兴趣源代码部分中的每个感兴趣源代码部分对应的感兴趣对象代码部 分。 处理器还编程为执行应用对象代码, 并且对于每个感兴趣对象代码部分的每次执行, 将 执行事件与所述存储器装置中的对应感兴趣源代码部分关联。
     在又一个方面, 提供一种用于指示包括多个感兴趣源代码部分的应用源代码的执 行的方法。该方法包括定义与执行事件数量的范围对应的多个执行频度。应用对象代码由 处理器基于应用源代码来生成。 应用对象代码至少包括多个计算机可执行指令以及与多个 感兴趣源代码部分对应的多个感兴趣对象代码部分。应用对象代码由处理器来执行。对于 感兴趣对象代码部分的每次执行, 由处理器将执行事件与存储器装置中的对应感兴趣源代 码部分关联。 由处理器基于与感兴趣源代码部分关联的执行事件的数量将执行频度与每个 感兴趣源代码部分关联。 附图说明 通过结合附图参照以下描述, 可以更好地理解本文所述的实施例。
     图 1 是示范计算装置的框图 ;
     图 2 是包括经由网络在通信上耦合的应用主机装置、 应用开发装置和应用监测装 置的示范执行跟踪系统的框图 ;
     图 3 是用于指示一个或多个感兴趣源代码部分的执行的示范方法的流程图 ;
     图 4 是使用图 3 所示的方法可发生的数据流的示范简图 ;
     图 5 是可与图 2 所示的系统配合使用的示范源代码查看器 ;
     图 6 是可与图 2 所示的系统配合使用的备选源代码查看器 ; 以及
     图 7 是可与图 2 所示的系统配合使用的示范执行计量器。
     具体实施方式
     本文所述的实施例提供是否已经以对象代码形式执行了应用源代码的指示。 具体 来说, 在一些实施例中, 在应用的执行期间, 识别应用源代码内的感兴趣部分。从应用源代 码生成的应用对象代码包括与应用源代码内的感兴趣部分对应的感兴趣部分。 随着执行应 用对象代码, 当执行感兴趣对象代码部分时, 为对应感兴趣源代码部分记录执行事件。例 如, 可通过使执行计数器递增和 / 或通过为每次执行存储离散事件 ( 例如包括时间戳 ) 来 记录执行事件。基于所记录执行事件来指示一个或多个感兴趣源代码部分的执行。
     本文所使用的术语 “应用源代码” 包括描述能够由计算机执行的操作的人类可读 语句。单个语句有时称作 “代码行” 或者简单地称作 “行” , 而不管用于以显示或印刷形式表 示人类可读语句的行的数量。功能相关语句的集合可组成方法 ( 又称作功能 )。相关方法 可组成类, 并且相关类可组成包或模块。应用或供应用使用的库可包括多个包中的应用源 代码。应用源代码可存储在存储器装置中的一个或多个文件中。例如, 每个类可对应于一 个文件。
     从应用源代码生成包括计算机可执行指令的应用对象代码。例如, 应用源代码可 被编译和 / 或转换以创建应用对象代码。应用对象代码的计算机可执行指令对应于应用源 代码的人类可读语句。与人类可读语句不同的是, 计算机可执行指令是由计算机的处理器 和 / 或由这种处理器执行的 “虚拟机” 直接可执行的。除了人类可读语句之外, 应用源代码 还可包括不是直接生成到应用对象代码中供处理器和 / 或虚拟机执行的内容, 诸如注释、 预处理指示和 / 或注解。
     本文针对应用源代码和应用对象代码内的感兴趣部分来描述实施例。 感兴趣源代码部分可包括人类可读语句、 方法、 类和 / 或包。感兴趣对象代码部分包括与感兴趣源代码 部分对应的一个或多个计算机可执行指令。
     在操作中, 处理器通过执行应用对象代码来执行软件程序和 / 或应用。在应用对 象代码的执行期间, 可监测和 / 或检测特定的感兴趣对象代码部分的执行。在一个示范实 施例中, 将执行断点与感兴趣对象代码部分的计算机可执行指令关联 ( 例如插入其前面 )。 处理器在执行断点暂停应用对象代码的执行, 并且称作监测实用程序的另一个应用会知道 感兴趣对象代码部分的执行。 例如, 处理器可编程为通知监测实用程序已经到达执行断点, 或者监测实用程序可向处理器重复请求或 “轮询” 执行信息。监测实用程序将执行事件与 感兴趣对象代码部分关联, 并且指导处理器继续执行应用对象代码。虽然描述为使用执行 断点, 但是本文所提供的实施例对于用于检测和 / 或监测感兴趣对象代码部分的执行的任 何手段是可操作的, 非限制性地包括将应用对象代码修改 ( 例如改编 ) 成包括和 / 或引用 用于生成执行事件的计算机可执行语句。
     本文所述的方法、 系统和设备的示范技术效果包括下列的至少一个 : (a) 经由输 入接口接收应用源代码内的多个感兴趣源代码部分的指示 ; (b) 由处理器基于应用源代码 来生成应用对象代码, 其中应用对象代码包括多个计算机可执行指令以及与感兴趣源代码 部分对应的多个感兴趣对象代码部分 ; (c) 由处理器将执行断点与多个感兴趣对象代码部 分中的每个感兴趣对象代码部分关联 ; 以及 (d) 对于各执行断点, 当执行关联的感兴趣对 象代码部分时, 禁用执行断点, 并且将执行事件与对应于存储器装置中的感兴趣对象代码 部分的感兴趣源代码部分关联。 图 1 是示范计算装置 105 的框图。计算装置 105 包括存储器装置 110 以及耦合到 存储器装置 110 用于执行指令的处理器 115。 在一些实施例中, 可执行指令存储在存储器装 置 110 中。计算装置 105 可由编程处理器 115 配置成执行本文所述的一个或多个操作。例 如, 可通过将操作编码为一个或多个可执行指令, 并且在存储器装置 110 中提供可执行指 令, 来对处理器 115 编程。处理器 115 可包括一个或多个处理单元 ( 例如, 采取多核配置 )。
     存储器装置 110 是使诸如可执行指令和 / 或其它数据之类的信息能够被存储和检 索的一个或多个装置。存储器装置 110 可包括一个或多个计算机可读介质, 诸如但不限于 动态随机存取存储器 (DRAM)、 静态随机存取存储器 (SRAM)、 固态盘和 / 或硬盘。存储器装 置 110 可配置成非限制性地存储应用源代码、 应用对象代码、 感兴趣源代码部分、 感兴趣对 象代码部分、 配置数据、 执行事件和 / 或任何其它类型的数据。
     在一些实施例中, 计算装置 105 包括耦合到处理器 115 的呈现接口 120。 呈现接口 120 向用户 125 呈现诸如应用源代码和 / 或执行事件之类的信息。例如, 呈现接口 120 可包 括显示适配器 ( 图 1 中未示出 ), 它可耦合到诸如阴极射线管 (CRT)、 液晶显示器 (LCD)、 有 机 LED(OLED) 显示器和 / 或 “电子墨水” 显示器之类的显示装置。在一些实施例中, 呈现接 口 120 包括一个或多个显示装置。作为补充或替代, 呈现接口 120 可包括打印机。在一些 实施例中, 呈现接口 120 基于与感兴趣源代码部分关联的执行事件来指示一个或多个感兴 趣源代码部分的执行。例如, 呈现接口 120 可配置成显示源代码查看器和 / 或执行计量器, 下面更详细描述。
     在一些实施例中, 计算装置 105 包括输入接口 130, 诸如用户输入接口 135 或通信 接口 140。输入接口 130 可配置成接收应用源代码内的一个或多个感兴趣部分的指示和 /
     或适合与本文所述方法配合使用的任何信息。
     在示范实施例中, 用户输入接口 135 耦合到处理器 115, 并且接收来自用户 125 的 输入。用户输入接口 135 可包括例如键盘、 指点装置、 鼠标、 触控笔、 触敏板 ( 例如, 触摸垫 或触摸屏 )、 陀螺仪、 加速计、 位置检测器和 / 或音频用户输入接口。 诸如触摸屏之类的单个 组件可用作呈现接口 120 的显示装置和用户输入接口 135。
     通信接口 140 耦合到处理器 115, 并且配置成在通信上与诸如另一个计算装置 105 之类的一个或多个远程装置耦合。例如, 通信接口 140 可非限制性地包括有线网络适配器、 无线网络适配器和 / 或移动电信适配器。通信接口 140 还可向一个或多个远程装置传送数 据。例如, 一个计算装置 105 的通信接口 140 可向另一个计算装置 105 的通信接口 140 传 送一个或多个感兴趣源代码部分的指示和 / 或一个或多个执行事件。
     图 2 是包括经由网络 220 在通信上耦合的应用主机装置 205、 应用开发装置 210 和 应用监测装置 215 的示范系统 200 的框图。网络 220 可以非限制性地包括因特网、 局域网 (LAN)、 广域网 (WAN)、 无线 LAN(WLAN)、 网格网络和 / 或虚拟专用网络 (VPN)。
     应用主机装置 205、 应用开发装置 210 和应用监测装置 215 是计算装置 105( 图 1 所示 )。在示范实施例中, 各计算装置 105 经由通信接口 140 耦合到网络 220。在一个备选 实施例中, 应用主机装置 205 与应用开发装置 210 和 / 或与应用监测装置 215 集成。 应用开发装置 210 与应用开发者 225 进行交互 ( 例如, 经由用户输入接口 135 和 / 或呈现接口 120)。例如, 应用开发装置 210 可配置成接收来自应用开发者 225 的应用源 代码。应用开发装置 210 经由网络 220 向应用主机装置 205 传送应用源代码。
     应用主机装置 205 接收并且存储应用源代码 ( 例如, 在存储器装置 110 中 )。应用 主机装置 205 还可配置成基于应用源代码来生成应用对象代码。
     应用监测装置 215 与应用监测者 230 进行交互 ( 例如, 经由用户输入接口 135 和 / 或呈现接口 120)。在一个实施例中, 应用监测装置 215 从应用监测者 230 接收一个或多 个感兴趣源代码部分的指示, 并且向应用主机装置 205 传送感兴趣源代码部分的指示。例 如, 应用监测者 230 可输入应用源代码的每个人类可读语句是感兴趣源代码部分的指示。
     应用主机装置 205 接收感兴趣源代码部分的指示, 执行应用对象代码, 并且将执 行事件与感兴趣源代码部分关联, 这会针对图 3 和图 4 更详细描述。应用主机装置 205 和 / 或应用监测装置 215 还可生成和 / 或呈现指示感兴趣源代码部分的执行的一个或多个图 形用户界面。
     在一些实施例中, 应用监测装置 215 远离应用主机装置 205。例如, 应用监测装置 215 可位于地理上离开应用主机装置 205 的支持设施处。这类实施例便于远程定义感兴趣 源代码部分, 并且监测执行事件。例如, 应用监测者 230 可在应用监测者 230 的客户所操作 的应用主机装置 205 处远程监测实况执行活动。
     图 3 是用于指示一个或多个感兴趣源代码部分的执行的示范方法 300 的流程图。 图 4 是使用方法 300 可发生的数据流的示范简图 400。图 5-7 是与方法 300 配合使用的示 范用户界面, 下面更详细地说明。
     方法 300 的部分可例如使用系统 200 中的计算装置 105 的任一个或者任何组合来 执行。在示范实施例中, 一个或多个感兴趣部分 ( 例如, 人类可读语句、 方法、 类和 / 或包 ) 在应用源代码 405 内确定 305。 例如, 感兴趣源代码部分可通过经由输入装置接收感兴趣源
     代码部分的指示 410 来确定 305。指示 410 可包括例如经由用户输入装置所输入的感兴趣 源代码部分的选择、 预定义监测配置的选择和 / 或监测配置文件。作为补充或替代, 感兴趣 源代码部分可由处理器自动确定 305。 例如, 处理器可编程为将应用源代码 405 或应用源代 码 405 的子集中的每个人类可读语句识别为感兴趣源代码部分。在一个实施例中, 应用源 代码 405 内的每个人类可读语句是感兴趣源代码部分。
     由处理器所执行的虚拟机 415 基于应用源代码 405 来生成 310 应用对象代码 420。 应用对象代码 420 包括多个计算机可执行指令以及与感兴趣源代码部分对应的多个感兴 趣对象代码部分。例如, 感兴趣对象代码部分可包括与应用源代码 405 的人类可读语句对 应的一个或多个计算机可执行指令。在一个示范实施例中, 虚拟机 415 运行编译器 425, 以 便生成 310 应用对象代码 420。
     虚拟机 415 将诸如执行断点 430 之类的执行检测手段与每个感兴趣对象代码部分 关联 315。 例如, 执行断点 430 可在与感兴趣源代码部分对应的计算机可执行指令的各集合 处或者之前与应用对象代码 420 关联。 在一个备选实施例中, 虚拟机 415 通过将应用对象代 码 420 修改成在与感兴趣源代码部分对应的计算机可执行指令的各集合处或之前包括和 / 或引用预定义计算机可执行指令 ( 例如执行事件记录指令 ), 来关联 315 执行检测手段。 虚拟机 415 执行 320 应用对象代码 420 的至少一部分。在执行 320 期间, 虚拟机 415 确定 325 感兴趣对象代码部分的执行 320 是正进行、 正挂起和 / 或即将进行。例如, 虚 拟机 415 可在到达执行断点 430 时暂停应用对象代码 420 的执行 320。将执行事件 435 与 对应于感兴趣对象代码部分的感兴趣源代码部分关联 330。 在一个实施例中, 与感兴趣源代 码部分关联的执行事件 435 存储在存储器装置中, 并且可包括指示创建执行 320 和 / 或执 行对应感兴趣对象代码部分的时间的时间戳。在一个备选实施例中, 将每个感兴趣源代码 部分与存储器装置中的执行 320 的数量 (“执行计数” ) 关联, 并且将执行事件 435 与感兴 趣源代码部分关联 330 包括使关联执行计数递增。执行事件 435 可作为应用数据结构、 数 据库中的记录、 结构化文本 ( 例如可扩展标记语言 )、 纯文本 ( 例如定界值或固定宽度值 ) 和 / 或采取适合与本文所述方法配合使用的任何其它形式来创建。
     在一些实施例中, 禁用 335( 例如去激活和 / 或删除 ) 执行断点 430。在将执行事 件 435 与感兴趣对象代码部分关联时禁用 335 执行断点 430 便于提高执行 320 应用对象代 码 420 的速度。例如, 虚拟机 415 可基于与正被执行的计算机可执行指令关联的断点 430 的存在来确定 325 感兴趣对象代码部分正被执行。在这种示例中, 禁用 335 断点 430 使虚 拟机 415 将最多一个执行事件 435 与感兴趣对象代码部分关联 330, 并且在感兴趣对象代码 部分的后续执行 320 时绕过关联 330 步骤。
     在其它实施例中, 每次执行感兴趣对象代码部分时, 将执行事件 435 与感兴趣对 象代码部分关联 330。 这类实施例便于确定已经执行感兴趣对象代码部分的频度, 下面更详 细描述。
     无论是否执行感兴趣对象代码部分, 虚拟机 415 确定 340 应用对象代码 420 的执 行 320 是否完成。例如, 执行 320 可在应用完成处理输入数据集之后、 在应用接收终止请求 之后和 / 或在应用遭遇致命错误之后完成。如果虚拟机 415 确定 340 执行 320 没有完成, 则虚拟机 415 继续执行 320 应用对象代码 420。
     在应用对象代码 420 的执行 320 期间或之后, 指示 350 感兴趣源代码部分的执行
     320。在一个示范实施例中, 执行事件 435 用于在可经由呈现接口向用户显示的、 诸如源代 码查看器 440 和 / 或执行计量器 445 之类的图形用户界面中指示 350 感兴趣源代码部分的 执行 320。下面针对图 5 和图 6 来描述源代码查看器 440。下面针对图 7 来描述执行计量 器 445。
     一些实施例基于关联的执行事件 435 以图形方式区分感兴趣的源代码部分。例 如, 与执行事件 435 关联的感兴趣源代码部分可采用第一背景颜色来显示, 而没有与执行 事件 435 关联的感兴趣源代码部分可采用不同背景颜色来显示。例如, 可通过确定与感兴 趣源代码部分关联的离散执行事件的数量 ( 例如包括时间戳 ) 和 / 或通过标识与感兴趣源 代码部分关联的执行计数, 来确定与感兴趣源代码部分关联的执行事件 435 的数量。
     一些实施例使得能够指示采取应用对象代码形式来执行感兴趣源代码部分的频 度。在这类实施例中, 对于对应感兴趣对象代码部分的每次执行, 将执行事件 435 与感兴趣 源代码部分关联 330( 例如, 通过创建离散执行事件和 / 或通过使执行计数递增 )。 指示 350 与感兴趣源代码部分关联的执行事件 435 的数量。在一些实施例中, 指示 350 执行事件的 绝对数量。例如, 对于与十二个执行事件关联的感兴趣源代码部分可指示 350 十二次执行。
     作为补充或替代, 对于感兴趣源代码部分可指示 350 执行频度。在一些实施例中, 定义 302 多个执行频度。例如, 执行频度可预定义并且存储在存储器装置中, 和 / 或在应用 对象代码 420 的执行期间定义。各执行频度对应于执行事件数量的范围。执行频度可包括 例如与零执行事件对应的从不执行频度、 与单个执行事件对应的执行一次频度和 / 或与两 个或更多执行事件对应的重复执行频度。在一个实施例中, 执行频度定义如下 :
     执行频度 1 2 3 4 5 6
     执行事件的数量 0 1-5 6-12 13-20 21-50 51 或更多表1
     虽然以上描述具体数值范围, 但是可定义 302 与执行事件数量的任何范围对应的 任何数量的执行频度。
     在指示 350 感兴趣源代码部分的执行之前, 可将执行频度与每个感兴趣源代码部 分关联 347。例如, 执行频度可基于与感兴趣源代码部分关联的执行计数和 / 或执行事件 435 的数量来确定。
     在一些实施例中, 呈现接口配置成在虚拟机 415 执行 320 应用对象代码 420 时, 指 示 350 一个或多个感兴趣源代码部分的执行。例如, 呈现接口可配置成重复指示 350 感兴趣源代码部分的执行, 从而在与感兴趣源代码部分关联的执行事件的数量增加时更新图形 界面。此外, 呈现接口可配置成在虚拟机 415 执行 320 第二感兴趣对象代码部分时, 指示执 行了与第一感兴趣对象代码部分对应的第一感兴趣源代码部分的执行。
     在一些实施例中, 在虚拟机 415 执行 320 应用对象代码 420 时, 接收 305 一个或多 个感兴趣部分的指示。虚拟机 415 生成 310 与所指示的感兴趣部分对应的应用对象代码 420 和 / 或将断点 430 与其关联 315, 而不终止应用对象代码 420 的执行 320。例如, 虚拟机 415 可暂停应用对象代码 420 的至少一部分的执行 320, 重新编译和 / 或重新加载与所指示 的感兴趣部分对应的一个或多个类, 和 / 或恢复应用对象代码 420 的执行 320。
     图 5 是按照方法 300( 图 3 所示 )、 可与诸如应用开发装置 210 和 / 或应用监测装 置 215( 图 2 所示 ) 之类的计算装置配合使用的示范源代码查看器 500。在一个示范实施例 中, 源代码查看器 500 经由呈现接口 120( 图 1 所示 ) 呈现给应用监测者 230, 并且用于经由 用户输入接口 135 接收来自应用监测者 230 的输入。
     源代码查看器 500 包括概要窗格 505 和细节窗格 510。概要窗格 505 包括文件中 的应用源代码的概要或 “缩略图” 图像 515 以及指示在细节窗格 510 内可见的文件的一部 分的可见部分指示器 520。在一个实施例中, 文件包括多个感兴趣源代码部分 ( 例如, 人类 可读语句、 方法和 / 或类 ), 以及细节窗格 510 包括感兴趣源代码部分的子集。 在概要窗格 505 和细节窗格 510 中包含的是各包括一个或多个人类可读语句 535 的第一方法 525 和第二方法 530。第一方法 525 采用第一背景图案 540 来显示, 而第二方法 530 采用第二背景图案 545 来显示, 以便以图形方式区分第二方法 530 与第一方法 525。在 概要窗格 505 和细节窗格 510 中都示出第一背景图案 540 和第二背景图案 545。
     在一个实施例中, 第一方法 525 和第二方法 530 各是可与一个或多个执行事件关 联的感兴趣源代码部分。例如, 当执行与第一方法 525 对应的任何计算机可执行指令时, 将 执行事件与第一方法 525 关联。在一个备选实施例中, 每个人类可读语句 535 是感兴趣源 代码部分。第一方法 525 的执行事件的数量基于与第一方法 525 内的人类可读语句 535 关 联的执行事件来确定。例如, 第一方法 525 的执行事件的数量可基于与第一方法 525 内的 人类可读语句 535 关联的执行事件的总和、 平均数、 最小数和 / 或最大数来计算。类似地, 与人类可读语句关联的执行事件可根据类、 包和 / 或应用来编组。
     在一个实施例中, 源代码查看器 500 采用图形区别 ( 例如, 第一背景图案 540 和第 二背景图案 545) 来指示第一方法 525 与一个或多个执行事件关联, 而第二方法 530 没有与 执行事件关联。 在另一个实施例中, 这种图形区别用于指示第一方法 525 和第二方法 530 与 执行事件的不同数量和 / 或不同执行频度关联。在又一个实施例中, 第一背景图案 540 指 示第一方法 525 与最近执行事件和 / 或当前执行对象代码关联。例如, 最近执行事件可定 义为执行计数的递增和 / 或在当前时间之前的预定义持续时间 ( 例如 10 秒、 30 秒、 60 秒和 / 或 3 分钟 ) 之内的离散执行事件的创建。此外, 可组合上述图形区别的方法。
     在一个实施例中, 源代码查看器 500 在应用对象代码被执行时重复 ( 例如, 周期 地、 在执行事件的通知时、 或者在来自用户的请求时 ) 更新概要窗格 505 和 / 或细节窗格 510。 在这种实施例中, 如果在第一时间没有与执行事件关联的第一感兴趣源代码部分在后 续时间变成与执行事件关联, 则以图形方式区分第一感兴趣源代码部分与仍然未和执行事 件关联的其它感兴趣源代码部分。 此外, 对于预定义持续时间, 可通过图形方式区分第一感
     兴趣源代码部分与已经和执行事件关联的其它感兴趣源代码部分。
     如图 5 所示, 图形区分可通过应用背景图案来实现。作为补充或替代, 图形区分可 通过应用颜色 ( 例如, 背景颜色或前景颜色 )、 线条图案、 线宽、 字体、 字体大小、 动画 ( 例如 渐消和 / 或闪烁 )、 近似定位图标和 / 或用于相互区分图形元素的任何其它适当手段来实 现。
     图 6 是按照方法 300( 图 3 所示 )、 可与诸如应用开发装置 210 和 / 或应用监测装 置 215( 图 2 所示 ) 之类的计算装置配合使用的第二示范源代码查看器 600。源代码查看器 600 包括示出包含应用源代码的文件的一部分的细节窗格 605。具体来说, 细节窗格 605 示 出方法 615 内的多个人类可读语句 535。每个人类可读语句 535 表示感兴趣源代码部分。
     与人类可读语句 535 相邻的是对应执行计数 620。执行计数 620 可与人类可读语 句 535 直接关联, 并且每次关联的人类可读语句 535 被执行时递增。作为补充或替代, 执行 计数 620 可通过对与人类可读语句 535 关联的执行事件的数量进行计数来确定。
     基于关联执行频度以图形方式区分人类可读语句 535。例如, 将第一背景图案 630 应用于与对应于执行计数 620 的第一范围 ( 例如 6 至 12 个执行事件 ) 的第一执行频度关联 的人类可读语句 535。将第二背景图案 635 应用于与对应于执行计数 620 的第二范围 ( 例 如 21 至 50 个执行事件 ) 的第二执行频度关联的人类可读语句 535。另外, 将第三背景图 案 640 应用于没有对应于应用对象代码中的计算机可执行指令的方法 615 的部分, 比如注 释 645。 与源代码查看器 500 相似, 可重复更新源代码查看器 600。 这种实施例便于执行活 动的实时监测。
     图 7 是按照方法 300、 可与诸如应用开发装置 210 和 / 或应用监测装置 215 之类的 计算装置配合使用的示范执行计量器 700。执行计量器 700 包括 : 添加按钮 705, 用于定义 感兴趣源代码部分 ; 以及概要执行量规 710, 指示与多个执行频度中的每个关联的感兴趣 源代码部分 ( 例如人类可读语句 ) 的比例。在一个备选实施例中, 概要执行量规 710 指示 与至少一个执行事件关联的感兴趣源代码部分的比例。
     执行计量器 700 还包括具有用于多个文件的详细执行量规 720 的表格 715。详细 执行量规 720 指示各文件内与各执行频度关联的感兴趣源代码部分的比例。例如, 第四详 细执行量规 725 包括第一框 730、 第二框 735、 第三框 740 和第四框 745, 各表示文件内与特 定执行频度关联的感兴趣源代码部分的比例。另外, 第四详细执行量规 725 包括空框 750, 表示与无执行事件和 / 或从不执行频度关联的感兴趣源代码部分的比例。各框 730、 735、 740、 745、 750 采用唯一填充图案来描绘, 便于与各执行频度关联的感兴趣源代码部分的比 例之间的图形区别。 与详细执行量规 720 相邻的是已执行比例 760, 它以数值方式指示各文 件内与至少一个执行事件关联的感兴趣源代码部分的比例。
     表格 715 对于各文件中的感兴趣源代码部分还包括最大执行计数图标 765、 最大 执行计数 770、 总执行计数 775、 感兴趣可执行源代码部分计数 780( 例如, 指示作为应用对 象代码是可执行的感兴趣源代码部分的数量 ) 以及已执行感兴趣源代码部分计数 785( 例 如, 指示与至少一个执行事件关联的感兴趣可执行源代码部分的数量 )。
     在一些实施例中, 在执行应用对象代码时, 重复更新执行计量器 700。这类实施例 便于执行活动的实时监测。
     执行计量器 700 被示为具有表示按文件来编组的人类可读语句的感兴趣源代码 部分。作为补充或替代, 感兴趣源代码部分可按方法、 文件、 类和 / 或包来显示。此外, 感兴 趣源代码部分可定义为方法、 类、 文件和 / 或包。
     本文所提供的实施例便于指示当应用在实况或 “生产” 上下文中被测试或执行时, 执行应用源代码的哪些部分。这类指示实现应用源代码的关键部分的标识, 例如未测试的 源代码、 未充分测试的源代码和 / 或频繁执行的源代码。一旦经过标识, 关键部分可经受附 加自动测试、 性能优化和 / 或在被修改 ( 例如重构 ) 时的附加详细审查。此外, 执行信息可 用于识别从未执行的源代码并且消除这种源代码, 由此减少与应用关联的维护工作和 / 或 成本。 本文所述的实施例还虑及在应用对象代码被执行时定义感兴趣源代码部分和监测执 行活动, 而没有与终止和重新开始应用对象代码的执行关联的延迟和不便。
     本文所述的方法和系统并不局限于本文所述的具体实施例。例如, 各系统的组件 和 / 或各方法的步骤可与本文所述的其它组件和 / 或步骤无关且分离地使用和 / 或实施。 另外, 各组件和 / 或步骤还可与其它设备和方法结合使用和 / 或实施。
     一些实施例涉及一个或多个电子或计算装置的使用。 这类装置通常包括处理器或 控制器, 诸如通用中央处理单元 (CPU)、 图形处理单元 (GPU)、 微控制器、 简化指令集计算机 (RISC) 处理器、 专用集成电路 (ASIC)、 可编程逻辑电路 (PLC) 和 / 或能够执行本文所述功 能的任何其它电路或处理器。本文所述的方法可编码为包含在包括但不限于存储装置和 / 或存储器装置的计算机可读介质中的可执行指令。这类指令在由处理器执行时, 使该处理 器执行本文所述方法的至少一部分。上述示例只是示范性的, 因而并不是要以任何方式限 制术语 “处理器” 的定义和 / 或含意。 虽然按照各种具体实施例描述了本发明, 但是本领域的技术人员会知道, 在权利 要求的精神和范围之内, 可经过修改来实施本发明。
     配件表
     105 110 115 120 125 130 135 140 200 计算装置 存储器装置 处理器 呈现接口 用户 输入接口 用户输入接口 通信接口 示范系统应用主机装置 应用开发装置 应用监测装置 网络 应用开发者 应用监测者 方法 定义 确定 生成 关联 执行 确定 关联 禁用 确定 关联 指示 示范简图 应用源代码 感兴趣部分的指示 虚拟机 应用对象代码 编译器执行断点 执行事件 源代码查看器 执行计量器 源代码查看器 概要窗格 细节窗格515 “缩略图” 图像 520 525 530 535 540 545 600 605 615 620 630 635 640 645 700 705 可见部分指示器 第一方法 第二方法 人类可读语句 第一背景图案 第二背景图案 源代码查看器 细节窗格 方法 执行计数 第一背景图案 第二背景图案 第三背景图案 注释 执行计量器 添加按钮概要执行量规 表格 详细执行量规 第四详细执行量规 第一框 第二框 第三框 第四框 空框 已执行比例 最大执行计数图标 最大执行计数 总执行计数 感兴趣计数 感兴趣计数

用于指示应用代码的执行的系统和方法.pdf_第1页
第1页 / 共22页
用于指示应用代码的执行的系统和方法.pdf_第2页
第2页 / 共22页
用于指示应用代码的执行的系统和方法.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《用于指示应用代码的执行的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于指示应用代码的执行的系统和方法.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102339253A43申请公布日20120201CN102339253ACN102339253A21申请号201110214832X22申请日2011072012/83972620100720USG06F11/3620060171申请人通用电气公司地址美国纽约州72发明人D维尔奇曼74专利代理机构中国专利代理香港有限公司72001代理人柯广华朱海煜54发明名称用于指示应用代码的执行的系统和方法57摘要本发明名称是“用于指示应用代码的执行的系统和方法”。提供一种用于指示应用源代码405的执行的系统。该系统包括输入接口130,配置成接收应用源代码内的感兴趣源代码部分的指示,其中。

2、应用源代码至少包括描述多个操作的多个人类可读语句535;以及处理器115,耦合到输入接口,并且编程为基于应用源代码来生成应用对象代码420,其中应用对象代码至少包括多个计算机可执行指令以及与感兴趣源代码部分对应的感兴趣对象代码部分,执行应用对象代码,并且对于感兴趣对象代码部分的每次执行,将执行事件与存储器装置110中的对应感兴趣源代码部分关联。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书12页附图7页CN102339266A1/2页21一种用于指示应用源代码405的执行的系统,所述系统包括输入接口130,配置成接收所述应用源代码内的感兴趣源代。

3、码部分的指示,其中所述应用源代码至少包括描述多个操作的多个人类可读语句535;以及处理器115,耦合到所述输入接口并且编程为基于所述应用源代码来生成应用对象代码420,其中所述应用对象代码至少包括多个计算机可执行指令以及与所述感兴趣源代码部分对应的感兴趣对象代码部分;执行所述应用对象代码;以及对于所述感兴趣对象代码部分的每次执行,将执行事件与存储器装置110中的对应感兴趣源代码部分关联。2如权利要求1所述的系统,还包括呈现接口120,所述呈现接口120配置成基于与所述感兴趣源代码部分关联的执行事件的数量来指示所述感兴趣源代码部分已被执行。3如权利要求2所述的系统,其中,所述感兴趣源代码部分是第。

4、一感兴趣源代码部分,并且所述呈现接口120还配置成以图形方式区分所述第一感兴趣源代码部分和没有与执行事件关联的第二感兴趣源代码部分。4如权利要求3所述的系统,其中,将所述第一感兴趣源代码部分与多个执行事件关联,并且所述呈现接口120还配置成以图形方式区分所述第一感兴趣源代码部分和与一个执行事件关联的第二感兴趣源代码部分。5如权利要求2所述的系统,其中,所述感兴趣对象代码部分是所述应用对象代码420的第一部分,并且所述呈现接口120配置成指示在所述处理器115执行所述应用对象代码的第二部分时所述感兴趣源代码部分已被执行。6如权利要求1所述的系统,其中,所述输入接口130还配置成在所述处理器115。

5、执行所述应用对象代码420时接收所述感兴趣源代码部分的指示,并且所述处理器还编程为将执行断点与所述感兴趣对象代码部分关联,而不终止所述应用对象代码的执行。7如权利要求1所述的系统,其中,所述输入接口130配置成接收与所述应用源代码405内的一个人类可读语句对应的至少一个感兴趣源代码部分的指示。8一种用于指示应用源代码405的执行的系统,所述系统包括存储器装置110,配置成存储应用源代码和应用对象代码420,其中所述应用源代码至少包括描述多个操作的多个人类可读语句,并且所述应用对象代码至少包括与所述多个人类可读语句对应的多个计算机可执行指令;处理器115,耦合到所述存储器装置并且编程为确定与所述。

6、应用源代码内的多个感兴趣源代码部分中的每个感兴趣源代码部分对应的感兴趣对象代码部分;执行所述应用对象代码;以及对于每个感兴趣对象代码部分的每次执行,将执行事件与所述存储器装置中的对应感兴趣源代码部分关联。9如权利要求8所述的系统,还包括呈现接口120,所述呈现接口120耦合到所述处理器115,并且配置成指示与所述多个感兴趣源代码部分中的第一感兴趣源代码部分关联的执行事件的数量。10如权利要求9所述的系统,其中,所述呈现接口120配置成通过以图形方式区分权利要求书CN102339253ACN102339266A2/2页3所述第一感兴趣源代码部分和与不同数量的执行事件关联的第二感兴趣源代码部分来指。

7、示执行事件的数量。权利要求书CN102339253ACN102339266A1/12页4用于指示应用代码的执行的系统和方法技术领域0001一般来说,本文所公开的主题涉及应用源代码管理,更具体来说,涉及用于检测和指示人类可读源代码的执行的系统和方法。背景技术0002至少一些已知计算机系统使用测试代码以基于预定义输入和预期输出来自动执行应用代码。此外,一些已知系统在测试期间跟踪应用代码执行,并且产生指示执行了源代码的哪一个或哪一些部分的统计和/或报告。这类报告可称作“代码覆盖报告”。0003一般来说,已知的执行跟踪系统和执行跟踪方法要求对应用代码进行修改和/或添加。但是,对应用代码进行修改或添加要。

8、求投入时间,并且可能负面影响关联应用的执行速度和/或行为。因此,可能使测试延迟。此外,取决于对应用的不利影响的严重性,已知的跟踪系统可被认为不适合用于其中执行速度关键的实况或“生产”上下文。另外,可引起等待代码覆盖报告的附加延迟,因为这类报告仅在所有测试代码的执行完成时才产生。0004此外,现有系统还可取决于应用代码内的感兴趣部分的静态预执行定义,并且因而这类系统要求用户终止并且重新执行应用,以便使跟踪其执行的感兴趣部分能够被修改。此外,现有方法局限于仅通过二元方式来指示是否已执行代码的一部分,而不能够区分很少执行与经常执行的代码。发明内容0005提供本概述以便以简化形式介绍概念的选择,下面在。

9、详细描述中进一步描述这些概念。本概述不是要标识要求保护的主题的关键特征或必要特征,也不是要用于帮助确定要求保护的主题的范围。0006在一个方面,提供一种用于指示应用源代码的执行的系统。该系统包括输入接口,该输入接口配置成接收应用源代码内的感兴趣源代码部分的指示。应用源代码至少包括描述多个操作的多个人类可读语句。该系统还包括处理器,处理器耦合到输入接口,并且编程为基于应用源代码来生成应用对象代码。应用对象代码至少包括多个计算机可执行指令以及与感兴趣源代码部分对应的感兴趣对象代码部分。处理器还编程为执行应用对象代码,并且对于感兴趣对象代码部分的每次执行,将执行事件与存储器装置中的对应感兴趣源代码部。

10、分关联。0007在另一个方面,提供一种用于指示应用源代码的执行的系统。该系统包括存储器装置,存储器装置配置成存储应用源代码和应用对象代码。应用源代码至少包括描述多个操作的多个人类可读语句,并且应用对象代码至少包括与多个人类可读语句对应的多个计算机可执行指令。该系统还包括处理器,处理器耦合到存储器装置,并且编程为确定与应用源代码内的多个感兴趣源代码部分中的每个感兴趣源代码部分对应的感兴趣对象代码部分。处理器还编程为执行应用对象代码,并且对于每个感兴趣对象代码部分的每次执行,将执行事件与所述存储器装置中的对应感兴趣源代码部分关联。说明书CN102339253ACN102339266A2/12页50。

11、008在又一个方面,提供一种用于指示包括多个感兴趣源代码部分的应用源代码的执行的方法。该方法包括定义与执行事件数量的范围对应的多个执行频度。应用对象代码由处理器基于应用源代码来生成。应用对象代码至少包括多个计算机可执行指令以及与多个感兴趣源代码部分对应的多个感兴趣对象代码部分。应用对象代码由处理器来执行。对于感兴趣对象代码部分的每次执行,由处理器将执行事件与存储器装置中的对应感兴趣源代码部分关联。由处理器基于与感兴趣源代码部分关联的执行事件的数量将执行频度与每个感兴趣源代码部分关联。附图说明0009通过结合附图参照以下描述,可以更好地理解本文所述的实施例。0010图1是示范计算装置的框图;00。

12、11图2是包括经由网络在通信上耦合的应用主机装置、应用开发装置和应用监测装置的示范执行跟踪系统的框图;0012图3是用于指示一个或多个感兴趣源代码部分的执行的示范方法的流程图;0013图4是使用图3所示的方法可发生的数据流的示范简图;0014图5是可与图2所示的系统配合使用的示范源代码查看器;0015图6是可与图2所示的系统配合使用的备选源代码查看器;以及0016图7是可与图2所示的系统配合使用的示范执行计量器。具体实施方式0017本文所述的实施例提供是否已经以对象代码形式执行了应用源代码的指示。具体来说,在一些实施例中,在应用的执行期间,识别应用源代码内的感兴趣部分。从应用源代码生成的应用对。

13、象代码包括与应用源代码内的感兴趣部分对应的感兴趣部分。随着执行应用对象代码,当执行感兴趣对象代码部分时,为对应感兴趣源代码部分记录执行事件。例如,可通过使执行计数器递增和/或通过为每次执行存储离散事件例如包括时间戳来记录执行事件。基于所记录执行事件来指示一个或多个感兴趣源代码部分的执行。0018本文所使用的术语“应用源代码”包括描述能够由计算机执行的操作的人类可读语句。单个语句有时称作“代码行”或者简单地称作“行”,而不管用于以显示或印刷形式表示人类可读语句的行的数量。功能相关语句的集合可组成方法又称作功能。相关方法可组成类,并且相关类可组成包或模块。应用或供应用使用的库可包括多个包中的应用源。

14、代码。应用源代码可存储在存储器装置中的一个或多个文件中。例如,每个类可对应于一个文件。0019从应用源代码生成包括计算机可执行指令的应用对象代码。例如,应用源代码可被编译和/或转换以创建应用对象代码。应用对象代码的计算机可执行指令对应于应用源代码的人类可读语句。与人类可读语句不同的是,计算机可执行指令是由计算机的处理器和/或由这种处理器执行的“虚拟机”直接可执行的。除了人类可读语句之外,应用源代码还可包括不是直接生成到应用对象代码中供处理器和/或虚拟机执行的内容,诸如注释、预处理指示和/或注解。0020本文针对应用源代码和应用对象代码内的感兴趣部分来描述实施例。感兴趣源代说明书CN102339。

15、253ACN102339266A3/12页6码部分可包括人类可读语句、方法、类和/或包。感兴趣对象代码部分包括与感兴趣源代码部分对应的一个或多个计算机可执行指令。0021在操作中,处理器通过执行应用对象代码来执行软件程序和/或应用。在应用对象代码的执行期间,可监测和/或检测特定的感兴趣对象代码部分的执行。在一个示范实施例中,将执行断点与感兴趣对象代码部分的计算机可执行指令关联例如插入其前面。处理器在执行断点暂停应用对象代码的执行,并且称作监测实用程序的另一个应用会知道感兴趣对象代码部分的执行。例如,处理器可编程为通知监测实用程序已经到达执行断点,或者监测实用程序可向处理器重复请求或“轮询”执行。

16、信息。监测实用程序将执行事件与感兴趣对象代码部分关联,并且指导处理器继续执行应用对象代码。虽然描述为使用执行断点,但是本文所提供的实施例对于用于检测和/或监测感兴趣对象代码部分的执行的任何手段是可操作的,非限制性地包括将应用对象代码修改例如改编成包括和/或引用用于生成执行事件的计算机可执行语句。0022本文所述的方法、系统和设备的示范技术效果包括下列的至少一个A经由输入接口接收应用源代码内的多个感兴趣源代码部分的指示;B由处理器基于应用源代码来生成应用对象代码,其中应用对象代码包括多个计算机可执行指令以及与感兴趣源代码部分对应的多个感兴趣对象代码部分;C由处理器将执行断点与多个感兴趣对象代码部。

17、分中的每个感兴趣对象代码部分关联;以及D对于各执行断点,当执行关联的感兴趣对象代码部分时,禁用执行断点,并且将执行事件与对应于存储器装置中的感兴趣对象代码部分的感兴趣源代码部分关联。0023图1是示范计算装置105的框图。计算装置105包括存储器装置110以及耦合到存储器装置110用于执行指令的处理器115。在一些实施例中,可执行指令存储在存储器装置110中。计算装置105可由编程处理器115配置成执行本文所述的一个或多个操作。例如,可通过将操作编码为一个或多个可执行指令,并且在存储器装置110中提供可执行指令,来对处理器115编程。处理器115可包括一个或多个处理单元例如,采取多核配置。00。

18、24存储器装置110是使诸如可执行指令和/或其它数据之类的信息能够被存储和检索的一个或多个装置。存储器装置110可包括一个或多个计算机可读介质,诸如但不限于动态随机存取存储器DRAM、静态随机存取存储器SRAM、固态盘和/或硬盘。存储器装置110可配置成非限制性地存储应用源代码、应用对象代码、感兴趣源代码部分、感兴趣对象代码部分、配置数据、执行事件和/或任何其它类型的数据。0025在一些实施例中,计算装置105包括耦合到处理器115的呈现接口120。呈现接口120向用户125呈现诸如应用源代码和/或执行事件之类的信息。例如,呈现接口120可包括显示适配器图1中未示出,它可耦合到诸如阴极射线管C。

19、RT、液晶显示器LCD、有机LEDOLED显示器和/或“电子墨水”显示器之类的显示装置。在一些实施例中,呈现接口120包括一个或多个显示装置。作为补充或替代,呈现接口120可包括打印机。在一些实施例中,呈现接口120基于与感兴趣源代码部分关联的执行事件来指示一个或多个感兴趣源代码部分的执行。例如,呈现接口120可配置成显示源代码查看器和/或执行计量器,下面更详细描述。0026在一些实施例中,计算装置105包括输入接口130,诸如用户输入接口135或通信接口140。输入接口130可配置成接收应用源代码内的一个或多个感兴趣部分的指示和/说明书CN102339253ACN102339266A4/12。

20、页7或适合与本文所述方法配合使用的任何信息。0027在示范实施例中,用户输入接口135耦合到处理器115,并且接收来自用户125的输入。用户输入接口135可包括例如键盘、指点装置、鼠标、触控笔、触敏板例如,触摸垫或触摸屏、陀螺仪、加速计、位置检测器和/或音频用户输入接口。诸如触摸屏之类的单个组件可用作呈现接口120的显示装置和用户输入接口135。0028通信接口140耦合到处理器115,并且配置成在通信上与诸如另一个计算装置105之类的一个或多个远程装置耦合。例如,通信接口140可非限制性地包括有线网络适配器、无线网络适配器和/或移动电信适配器。通信接口140还可向一个或多个远程装置传送数据。。

21、例如,一个计算装置105的通信接口140可向另一个计算装置105的通信接口140传送一个或多个感兴趣源代码部分的指示和/或一个或多个执行事件。0029图2是包括经由网络220在通信上耦合的应用主机装置205、应用开发装置210和应用监测装置215的示范系统200的框图。网络220可以非限制性地包括因特网、局域网LAN、广域网WAN、无线LANWLAN、网格网络和/或虚拟专用网络VPN。0030应用主机装置205、应用开发装置210和应用监测装置215是计算装置105图1所示。在示范实施例中,各计算装置105经由通信接口140耦合到网络220。在一个备选实施例中,应用主机装置205与应用开发装置。

22、210和/或与应用监测装置215集成。0031应用开发装置210与应用开发者225进行交互例如,经由用户输入接口135和/或呈现接口120。例如,应用开发装置210可配置成接收来自应用开发者225的应用源代码。应用开发装置210经由网络220向应用主机装置205传送应用源代码。0032应用主机装置205接收并且存储应用源代码例如,在存储器装置110中。应用主机装置205还可配置成基于应用源代码来生成应用对象代码。0033应用监测装置215与应用监测者230进行交互例如,经由用户输入接口135和/或呈现接口120。在一个实施例中,应用监测装置215从应用监测者230接收一个或多个感兴趣源代码部分。

23、的指示,并且向应用主机装置205传送感兴趣源代码部分的指示。例如,应用监测者230可输入应用源代码的每个人类可读语句是感兴趣源代码部分的指示。0034应用主机装置205接收感兴趣源代码部分的指示,执行应用对象代码,并且将执行事件与感兴趣源代码部分关联,这会针对图3和图4更详细描述。应用主机装置205和/或应用监测装置215还可生成和/或呈现指示感兴趣源代码部分的执行的一个或多个图形用户界面。0035在一些实施例中,应用监测装置215远离应用主机装置205。例如,应用监测装置215可位于地理上离开应用主机装置205的支持设施处。这类实施例便于远程定义感兴趣源代码部分,并且监测执行事件。例如,应用。

24、监测者230可在应用监测者230的客户所操作的应用主机装置205处远程监测实况执行活动。0036图3是用于指示一个或多个感兴趣源代码部分的执行的示范方法300的流程图。图4是使用方法300可发生的数据流的示范简图400。图57是与方法300配合使用的示范用户界面,下面更详细地说明。0037方法300的部分可例如使用系统200中的计算装置105的任一个或者任何组合来执行。在示范实施例中,一个或多个感兴趣部分例如,人类可读语句、方法、类和/或包在应用源代码405内确定305。例如,感兴趣源代码部分可通过经由输入装置接收感兴趣源说明书CN102339253ACN102339266A5/12页8代码部。

25、分的指示410来确定305。指示410可包括例如经由用户输入装置所输入的感兴趣源代码部分的选择、预定义监测配置的选择和/或监测配置文件。作为补充或替代,感兴趣源代码部分可由处理器自动确定305。例如,处理器可编程为将应用源代码405或应用源代码405的子集中的每个人类可读语句识别为感兴趣源代码部分。在一个实施例中,应用源代码405内的每个人类可读语句是感兴趣源代码部分。0038由处理器所执行的虚拟机415基于应用源代码405来生成310应用对象代码420。应用对象代码420包括多个计算机可执行指令以及与感兴趣源代码部分对应的多个感兴趣对象代码部分。例如,感兴趣对象代码部分可包括与应用源代码40。

26、5的人类可读语句对应的一个或多个计算机可执行指令。在一个示范实施例中,虚拟机415运行编译器425,以便生成310应用对象代码420。0039虚拟机415将诸如执行断点430之类的执行检测手段与每个感兴趣对象代码部分关联315。例如,执行断点430可在与感兴趣源代码部分对应的计算机可执行指令的各集合处或者之前与应用对象代码420关联。在一个备选实施例中,虚拟机415通过将应用对象代码420修改成在与感兴趣源代码部分对应的计算机可执行指令的各集合处或之前包括和/或引用预定义计算机可执行指令例如执行事件记录指令,来关联315执行检测手段。0040虚拟机415执行320应用对象代码420的至少一部分。

27、。在执行320期间,虚拟机415确定325感兴趣对象代码部分的执行320是正进行、正挂起和/或即将进行。例如,虚拟机415可在到达执行断点430时暂停应用对象代码420的执行320。将执行事件435与对应于感兴趣对象代码部分的感兴趣源代码部分关联330。在一个实施例中,与感兴趣源代码部分关联的执行事件435存储在存储器装置中,并且可包括指示创建执行320和/或执行对应感兴趣对象代码部分的时间的时间戳。在一个备选实施例中,将每个感兴趣源代码部分与存储器装置中的执行320的数量“执行计数”关联,并且将执行事件435与感兴趣源代码部分关联330包括使关联执行计数递增。执行事件435可作为应用数据结构。

28、、数据库中的记录、结构化文本例如可扩展标记语言、纯文本例如定界值或固定宽度值和/或采取适合与本文所述方法配合使用的任何其它形式来创建。0041在一些实施例中,禁用335例如去激活和/或删除执行断点430。在将执行事件435与感兴趣对象代码部分关联时禁用335执行断点430便于提高执行320应用对象代码420的速度。例如,虚拟机415可基于与正被执行的计算机可执行指令关联的断点430的存在来确定325感兴趣对象代码部分正被执行。在这种示例中,禁用335断点430使虚拟机415将最多一个执行事件435与感兴趣对象代码部分关联330,并且在感兴趣对象代码部分的后续执行320时绕过关联330步骤。00。

29、42在其它实施例中,每次执行感兴趣对象代码部分时,将执行事件435与感兴趣对象代码部分关联330。这类实施例便于确定已经执行感兴趣对象代码部分的频度,下面更详细描述。0043无论是否执行感兴趣对象代码部分,虚拟机415确定340应用对象代码420的执行320是否完成。例如,执行320可在应用完成处理输入数据集之后、在应用接收终止请求之后和/或在应用遭遇致命错误之后完成。如果虚拟机415确定340执行320没有完成,则虚拟机415继续执行320应用对象代码420。0044在应用对象代码420的执行320期间或之后,指示350感兴趣源代码部分的执行说明书CN102339253ACN10233926。

30、6A6/12页9320。在一个示范实施例中,执行事件435用于在可经由呈现接口向用户显示的、诸如源代码查看器440和/或执行计量器445之类的图形用户界面中指示350感兴趣源代码部分的执行320。下面针对图5和图6来描述源代码查看器440。下面针对图7来描述执行计量器445。0045一些实施例基于关联的执行事件435以图形方式区分感兴趣的源代码部分。例如,与执行事件435关联的感兴趣源代码部分可采用第一背景颜色来显示,而没有与执行事件435关联的感兴趣源代码部分可采用不同背景颜色来显示。例如,可通过确定与感兴趣源代码部分关联的离散执行事件的数量例如包括时间戳和/或通过标识与感兴趣源代码部分关联。

31、的执行计数,来确定与感兴趣源代码部分关联的执行事件435的数量。0046一些实施例使得能够指示采取应用对象代码形式来执行感兴趣源代码部分的频度。在这类实施例中,对于对应感兴趣对象代码部分的每次执行,将执行事件435与感兴趣源代码部分关联330例如,通过创建离散执行事件和/或通过使执行计数递增。指示350与感兴趣源代码部分关联的执行事件435的数量。在一些实施例中,指示350执行事件的绝对数量。例如,对于与十二个执行事件关联的感兴趣源代码部分可指示350十二次执行。0047作为补充或替代,对于感兴趣源代码部分可指示350执行频度。在一些实施例中,定义302多个执行频度。例如,执行频度可预定义并且。

32、存储在存储器装置中,和/或在应用对象代码420的执行期间定义。各执行频度对应于执行事件数量的范围。执行频度可包括例如与零执行事件对应的从不执行频度、与单个执行事件对应的执行一次频度和/或与两个或更多执行事件对应的重复执行频度。在一个实施例中,执行频度定义如下0048执行频度执行事件的数量1021536124132052150651或更多0049表10050虽然以上描述具体数值范围,但是可定义302与执行事件数量的任何范围对应的任何数量的执行频度。0051在指示350感兴趣源代码部分的执行之前,可将执行频度与每个感兴趣源代码部分关联347。例如,执行频度可基于与感兴趣源代码部分关联的执行计数和/。

33、或执行事件435的数量来确定。0052在一些实施例中,呈现接口配置成在虚拟机415执行320应用对象代码420时,指示350一个或多个感兴趣源代码部分的执行。例如,呈现接口可配置成重复指示350感兴说明书CN102339253ACN102339266A7/12页10趣源代码部分的执行,从而在与感兴趣源代码部分关联的执行事件的数量增加时更新图形界面。此外,呈现接口可配置成在虚拟机415执行320第二感兴趣对象代码部分时,指示执行了与第一感兴趣对象代码部分对应的第一感兴趣源代码部分的执行。0053在一些实施例中,在虚拟机415执行320应用对象代码420时,接收305一个或多个感兴趣部分的指示。虚。

34、拟机415生成310与所指示的感兴趣部分对应的应用对象代码420和/或将断点430与其关联315,而不终止应用对象代码420的执行320。例如,虚拟机415可暂停应用对象代码420的至少一部分的执行320,重新编译和/或重新加载与所指示的感兴趣部分对应的一个或多个类,和/或恢复应用对象代码420的执行320。0054图5是按照方法300图3所示、可与诸如应用开发装置210和/或应用监测装置215图2所示之类的计算装置配合使用的示范源代码查看器500。在一个示范实施例中,源代码查看器500经由呈现接口120图1所示呈现给应用监测者230,并且用于经由用户输入接口135接收来自应用监测者230的输。

35、入。0055源代码查看器500包括概要窗格505和细节窗格510。概要窗格505包括文件中的应用源代码的概要或“缩略图”图像515以及指示在细节窗格510内可见的文件的一部分的可见部分指示器520。在一个实施例中,文件包括多个感兴趣源代码部分例如,人类可读语句、方法和/或类,以及细节窗格510包括感兴趣源代码部分的子集。0056在概要窗格505和细节窗格510中包含的是各包括一个或多个人类可读语句535的第一方法525和第二方法530。第一方法525采用第一背景图案540来显示,而第二方法530采用第二背景图案545来显示,以便以图形方式区分第二方法530与第一方法525。在概要窗格505和细。

36、节窗格510中都示出第一背景图案540和第二背景图案545。0057在一个实施例中,第一方法525和第二方法530各是可与一个或多个执行事件关联的感兴趣源代码部分。例如,当执行与第一方法525对应的任何计算机可执行指令时,将执行事件与第一方法525关联。在一个备选实施例中,每个人类可读语句535是感兴趣源代码部分。第一方法525的执行事件的数量基于与第一方法525内的人类可读语句535关联的执行事件来确定。例如,第一方法525的执行事件的数量可基于与第一方法525内的人类可读语句535关联的执行事件的总和、平均数、最小数和/或最大数来计算。类似地,与人类可读语句关联的执行事件可根据类、包和/或。

37、应用来编组。0058在一个实施例中,源代码查看器500采用图形区别例如,第一背景图案540和第二背景图案545来指示第一方法525与一个或多个执行事件关联,而第二方法530没有与执行事件关联。在另一个实施例中,这种图形区别用于指示第一方法525和第二方法530与执行事件的不同数量和/或不同执行频度关联。在又一个实施例中,第一背景图案540指示第一方法525与最近执行事件和/或当前执行对象代码关联。例如,最近执行事件可定义为执行计数的递增和/或在当前时间之前的预定义持续时间例如10秒、30秒、60秒和/或3分钟之内的离散执行事件的创建。此外,可组合上述图形区别的方法。0059在一个实施例中,源代。

38、码查看器500在应用对象代码被执行时重复例如,周期地、在执行事件的通知时、或者在来自用户的请求时更新概要窗格505和/或细节窗格510。在这种实施例中,如果在第一时间没有与执行事件关联的第一感兴趣源代码部分在后续时间变成与执行事件关联,则以图形方式区分第一感兴趣源代码部分与仍然未和执行事件关联的其它感兴趣源代码部分。此外,对于预定义持续时间,可通过图形方式区分第一感说明书CN102339253ACN102339266A8/12页11兴趣源代码部分与已经和执行事件关联的其它感兴趣源代码部分。0060如图5所示,图形区分可通过应用背景图案来实现。作为补充或替代,图形区分可通过应用颜色例如,背景颜色。

39、或前景颜色、线条图案、线宽、字体、字体大小、动画例如渐消和/或闪烁、近似定位图标和/或用于相互区分图形元素的任何其它适当手段来实现。0061图6是按照方法300图3所示、可与诸如应用开发装置210和/或应用监测装置215图2所示之类的计算装置配合使用的第二示范源代码查看器600。源代码查看器600包括示出包含应用源代码的文件的一部分的细节窗格605。具体来说,细节窗格605示出方法615内的多个人类可读语句535。每个人类可读语句535表示感兴趣源代码部分。0062与人类可读语句535相邻的是对应执行计数620。执行计数620可与人类可读语句535直接关联,并且每次关联的人类可读语句535被执。

40、行时递增。作为补充或替代,执行计数620可通过对与人类可读语句535关联的执行事件的数量进行计数来确定。0063基于关联执行频度以图形方式区分人类可读语句535。例如,将第一背景图案630应用于与对应于执行计数620的第一范围例如6至12个执行事件的第一执行频度关联的人类可读语句535。将第二背景图案635应用于与对应于执行计数620的第二范围例如21至50个执行事件的第二执行频度关联的人类可读语句535。另外,将第三背景图案640应用于没有对应于应用对象代码中的计算机可执行指令的方法615的部分,比如注释645。0064与源代码查看器500相似,可重复更新源代码查看器600。这种实施例便于执。

41、行活动的实时监测。0065图7是按照方法300、可与诸如应用开发装置210和/或应用监测装置215之类的计算装置配合使用的示范执行计量器700。执行计量器700包括添加按钮705,用于定义感兴趣源代码部分;以及概要执行量规710,指示与多个执行频度中的每个关联的感兴趣源代码部分例如人类可读语句的比例。在一个备选实施例中,概要执行量规710指示与至少一个执行事件关联的感兴趣源代码部分的比例。0066执行计量器700还包括具有用于多个文件的详细执行量规720的表格715。详细执行量规720指示各文件内与各执行频度关联的感兴趣源代码部分的比例。例如,第四详细执行量规725包括第一框730、第二框73。

42、5、第三框740和第四框745,各表示文件内与特定执行频度关联的感兴趣源代码部分的比例。另外,第四详细执行量规725包括空框750,表示与无执行事件和/或从不执行频度关联的感兴趣源代码部分的比例。各框730、735、740、745、750采用唯一填充图案来描绘,便于与各执行频度关联的感兴趣源代码部分的比例之间的图形区别。与详细执行量规720相邻的是已执行比例760,它以数值方式指示各文件内与至少一个执行事件关联的感兴趣源代码部分的比例。0067表格715对于各文件中的感兴趣源代码部分还包括最大执行计数图标765、最大执行计数770、总执行计数775、感兴趣可执行源代码部分计数780例如,指示作。

43、为应用对象代码是可执行的感兴趣源代码部分的数量以及已执行感兴趣源代码部分计数785例如,指示与至少一个执行事件关联的感兴趣可执行源代码部分的数量。0068在一些实施例中,在执行应用对象代码时,重复更新执行计量器700。这类实施例便于执行活动的实时监测。说明书CN102339253ACN102339266A9/12页120069执行计量器700被示为具有表示按文件来编组的人类可读语句的感兴趣源代码部分。作为补充或替代,感兴趣源代码部分可按方法、文件、类和/或包来显示。此外,感兴趣源代码部分可定义为方法、类、文件和/或包。0070本文所提供的实施例便于指示当应用在实况或“生产”上下文中被测试或执行。

44、时,执行应用源代码的哪些部分。这类指示实现应用源代码的关键部分的标识,例如未测试的源代码、未充分测试的源代码和/或频繁执行的源代码。一旦经过标识,关键部分可经受附加自动测试、性能优化和/或在被修改例如重构时的附加详细审查。此外,执行信息可用于识别从未执行的源代码并且消除这种源代码,由此减少与应用关联的维护工作和/或成本。本文所述的实施例还虑及在应用对象代码被执行时定义感兴趣源代码部分和监测执行活动,而没有与终止和重新开始应用对象代码的执行关联的延迟和不便。0071本文所述的方法和系统并不局限于本文所述的具体实施例。例如,各系统的组件和/或各方法的步骤可与本文所述的其它组件和/或步骤无关且分离地。

45、使用和/或实施。另外,各组件和/或步骤还可与其它设备和方法结合使用和/或实施。0072一些实施例涉及一个或多个电子或计算装置的使用。这类装置通常包括处理器或控制器,诸如通用中央处理单元CPU、图形处理单元GPU、微控制器、简化指令集计算机RISC处理器、专用集成电路ASIC、可编程逻辑电路PLC和/或能够执行本文所述功能的任何其它电路或处理器。本文所述的方法可编码为包含在包括但不限于存储装置和/或存储器装置的计算机可读介质中的可执行指令。这类指令在由处理器执行时,使该处理器执行本文所述方法的至少一部分。上述示例只是示范性的,因而并不是要以任何方式限制术语“处理器”的定义和/或含意。0073虽然。

46、按照各种具体实施例描述了本发明,但是本领域的技术人员会知道,在权利要求的精神和范围之内,可经过修改来实施本发明。0074配件表0075105计算装置110存储器装置115处理器120呈现接口125用户130输入接口135用户输入接口140通信接口200示范系统说明书CN102339253ACN102339266A10/12页13205应用主机装置210应用开发装置215应用监测装置220网络225应用开发者230应用监测者300方法302定义305确定310生成315关联320执行325确定330关联335禁用340确定347关联350指示400示范简图405应用源代码410感兴趣部分的指示4。

47、15虚拟机420应用对象代码425编译器说明书CN102339253ACN102339266A11/12页14430执行断点435执行事件440源代码查看器445执行计量器500源代码查看器505概要窗格510细节窗格515“缩略图”图像520可见部分指示器525第一方法530第二方法535人类可读语句540第一背景图案545第二背景图案600源代码查看器605细节窗格615方法620执行计数630第一背景图案635第二背景图案640第三背景图案645注释700执行计量器705添加按钮说明书CN102339253ACN102339266A12/12页15710概要执行量规715表格720详细执。

48、行量规725第四详细执行量规730第一框735第二框740第三框745第四框750空框760已执行比例765最大执行计数图标770最大执行计数775总执行计数780感兴趣计数785感兴趣计数说明书CN102339253ACN102339266A1/7页16图1说明书附图CN102339253ACN102339266A2/7页17图2说明书附图CN102339253ACN102339266A3/7页18图3说明书附图CN102339253ACN102339266A4/7页19图4说明书附图CN102339253ACN102339266A5/7页20图5说明书附图CN102339253ACN102339266A6/7页21图6说明书附图CN102339253ACN102339266A7/7页22图7说明书附图CN102339253A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1