用于导航应用代码的图表的制作方法

文档序号:9476215阅读:220来源:国知局
用于导航应用代码的图表的制作方法
【专利说明】用于导航应用代码的图表
[0001]相关申请的交叉引用
[0002]本申请要求2013 年 5 月 21 日提交的题为“Interactive Graph for NavigatingApplicat1n Code”(用于导航应用代码的交互式图表)的美国专利申请序列号13/899,500、2013 年 5 月 21 日提交的题为 “Setting Breakpoint Using an InteractiveGraph Representing an Applicat1n”(使用表示应用的交互式图表来设置断点)的美国专利申请序列号13/899,503、2013年5月21日提交的题为“Animated Highlights ina Graph Representing an Applicat1n”(在表示应用的图表中的动画化的突出显示)的美国专利申请序列号13/899,504、以及2013年5月21日提交的题为“Filtering andTransforming a Graph Representing an Applicat1n”(过滤和变换表不应用的图表)的美国专利申请序列号13/899,507的权益和优先权,这些申请都通过援引它们所教导和揭示的全部内容而被明确结合于此。
[0003]背景
[0004]程序员常常以许多不同方式在开发期间检查和测试应用。程序员可在各种使用场景中运行该应用、实施加载、执行测试套件、或对应用执行其他操作,以便理解该应用如何执行以及验证该应用按所设计的那样操作。
[0005]当程序员标识出某一问题区域时,程序员可在源代码中定位该问题区域以及改进或改变该区域中的代码。这样的改进然后可被再次测试以验证该问题区域被纠正。

【发明内容】

[0006]可从描绘一应用的图表中选择代码元素。图表可将代码元素示为节点,而边表示节点之间的连接。连接可以是代码元素之间传递的消息、代码流关系、或其他关系。当从图表中选择一代码元素或一组代码元素时,对应的源代码可被显示。代码可被显示在代码编辑器或可用来查看、编辑和操纵代码的其他机制中。
[0007]可通过选择描绘代码元素以及代码元素之间的关系的图表上的节点来设置断点??赏ü偈莸贸鐾急?,且图表可反应观察到的代码元素以及代码元素之间观察到的交互。在许多情况中,图表可包括性能指示符。断点可尤其包括依赖于与性能有关的度量的条件。在一些实施例中,节点可反应特定代码元素的个体实例,而其他实施例可将节点呈现为可由不同线程利用的相同代码元素。断点可包括可因线程而异的参数或条件。
[0008]在对应用的分析和调试期间,应用中代码元素之间的关系可被选择并被使用。交互式图表可显示代码元素以及代码元素之间的关系,而用户或许能够从图表中选择某一关系,于是该关系的细节可被显示。该细节可包括跨该关系传递的数据、所使用的协议、以及通信频率、等待时间、队列性能、以及其他性能度量。通过关系选择,用户或许能够设置断点、增加或减少跟踪选项、或者执行其他动作。
[0009]被突出显示的对象可遍历表示应用的代码元素以及那些代码元素之间的关系的图表。被突出显示的对象可被动画化来表示对象在应用中如何被处理。图表可表示代码元素以及代码元素之间的关系,可通过跟踪应用以确定对象通过代码元素以及跨过关系的流动来生成突出显示。用户可用一组播放控件来控制被突出显示的图表以通过图表上的突出显示的序列来播放。播放控件可包括暂停、倒回、前进、快进、以及其他控件??丶部砂ú浇丶?,步进控件可单步调试小的时间增量。
[0010]表示代码元素以及代码元素之间的关系的图表可使得元素组合来合并或折叠图表的某些部分。过滤器可在图表数据和渲染器间操作以用不同的状态示出图表。图表可用交互式用户界面来实现,通过交互式用户界面用户可选择节点、边、节点或边的分组,然后应用过滤器或其他变换。当用户选择组合一组代码元素时,组合的元素可被显示为单个元素。在某些情况下,与单元素(singleton element)相对照,该单个元素可呈现有视觉差异以示出该元素是折叠的或组合元素。
[0011]提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。本概述并不旨在标识所要求?;ぶ魈獾墓丶卣骰虮匾卣?,也不旨在用于限制所要求?;ぶ魈獾姆段?。
[0012]附图简述
[0013]在附图中:
[0014]图1是示出具有表示代码元素以及代码元素之间的关系的交互式图表的用户界面的实施例的示图例示。
[0015]图2是示出可显示表示正被跟踪的应用的交互式图表的设备的实施例的示图例不O
[0016]图3是示出具有有分散组件的可视化系统系统的网络环境的实施例的示图例示。
[0017]图4是示出用于显示图表以及响应于与图表的交互来选择源代码以显示的方法的实施例的流程图例示。
[0018]图5是示出具有断点创建的示例用户界面的实施例的示图例示。
[0019]图6是示出具有边选择的示例用户界面的实施例的示图例示。
[0020]图7是示出用于设置并使用断点的方法的实施例的流程图例示。
[0021]图8A、8B和8C是示出放置在表示某一应用的图表上的突出显示的进展的示例实施例的示图例示。
[0022]图9是示出用于突出显示一图表以跟踪某一对象穿过图表的遍历的方法的实施例的流程图例示。
[0023]图10是示出具有交互式图表和过滤器的分布式系统的实施例的示图例示。
[0024]图1lA和IlB是示出将过滤器应用于图表的序列的示例实施例的示图例示。
[0025]图12是示出用于创建过滤器并将过滤器应用于图表的方法的实施例的流程图例不O
[0026]详细描述
[0027]通过交互式图表导航源代码
[0028]示出代码元素以及代码元素之间的关系的图表可被使用来选择和显示代码元素。图表可表示代码元素之间的静态和动态关系两者,包括在执行期间跟踪代码元素时收集到的另一性能度量。
[0029]交互式图表可具有可允许用户选择图表的某一节点或边的有效输入区,其中节点可表示某一代码元素,而边可表示代码元素之间的关系。在选择可图表元素之后,对应的源代码或该代码元素的其他表示可被显示出。
[0030]在某些情况下,代码元素可被显示在代码编辑器中,而用户或许能够编辑该代码以及对该代码执行各种功能,包括编译和执行该代码。所选的代码元素可用突出显示或其他视觉线索被显示出,使得程序员可容易地标识由从图表中选择的某一节点所表示的精确代码行(一行或多行)。
[0031]对边的选择可标识两个代码元素,因为每条边可链接该两个代码元素。在这一情况下,一些实施例可显示这两个代码元素。这样的代码元素可使用不同的显示技术都被同时地显示在用户界面上。
[0032]其他实施例可显示由边链接的代码元素之一。一些这样的实施例可呈现可允许用户在两个代码元素之间选择的用户界面。在一个这样的示例中,当关系具有方向性概念时,可呈现询问用户选择上游元素还是下游元素的用户界面。在另一示例中,一用户界面可仅示出与每个节点相关联的个体代码行,然后允许用户选择代码行来进一步调查和显示。
[0033]图表可包含从对应用的静态和动态分析得出的信息。静态分析可标识代码块以及某些关系,诸如代码元素之间的调用树或流程控制关系。动态分析可通过在仪表化环境(instrumented environment)中分析代码来标识代码块以检测代码块以及代码在执行期间如何交互。一些实施例可标识代码元素之间传递的消息、从一个代码元素向另一个代码元素作出的函数调用、或者其他关系。
[0034]图表可显示关于代码的执行的综述或其他观察结果。例如,跟踪器可收集关于每个代码元素的数据,诸如消耗的处理器或存储器资源的量、执行的垃圾回收的量、高速缓存未命中的数量、或者许多不同性能度量中的任何性能度量。
[0035]图表可以显示有性能度量的某种表示。例如,某一代码元素可以用符号、大小、颜色或可指示某种性能度量的其他变化来显示。在一简单示例中,显示某一节点的符号的大小可指示出该元素所消耗的处理时间。在另一示例中,边的宽度可表示代码元素之间传递的数据的量或传递的消息的数量。
[0036]通过交互式图表设置的断点。
[0037]交互式图表可充当选择从其可设置断点的代码元素的输入工具。与所选代码元素有关的对象可被显示,且可从对象中的一个或多个对象创建断点。在某些情况下,断点可被应用于所选代码元素或某一对象使得断点可满足于一不同代码元素。
[0038]交互式图表可显示代码元素以及代码元素之间的关系,且可可视地阐明应用的操作。图表可被实时地或近乎实时地更新,且可使用各种视觉效果示出与性能有关的度量。用户可与图表交互以标识可能感兴趣的特定代码元素,然后选择所述代码元素来创建断点。
[0039]性能和其他跟踪器数据可与所选代码元素显示在一起。这样的数据可包括度量、统计以及与该特定代码元素有关的其他信息。这样的度量可以是例如存储器、处理器、网络或其他资源的消耗统计,所选代码元素与其他代码元素之间的比较,或者其他数据。在某些情况下,度量可包括可被结合在断点中的参数。
[0040]由于图表可包含与性能有关的数据,用户可在选择在何处插入断点之前观察应用的操作和性能。性能数据与应用的关系结构的组合可极大地帮助用户为断点选择有意义的位置。关系结构可帮助用户理解应用流程,以及标识从源代码可能不能显而易见的依赖关系和瓶颈。性能数据可标识可能正在超出预期或低于预期地执行的那些应用元素。关系结构和性能数据两者的组合可比用于标识断点位置的其他方法有效和有意义得多。
[0041]选择关系作为输入
[0042]代码元素之间的关系可从将代码元素表示为节点以及将代码元素之间的关系表示为边的交互式图表中被选择。关系可表示许多不同类型的关系,从函数调用到共享存储器对象。一旦被选择,关系就可被用于设置断点、监视跨该关系的通信、增加或减少跟踪活动、或其他操作。
[0043]关系可以是消息传递类型的关系,其中一些可仅仅传递确认,而另一些可包括数据对象、代码元素、或其他信息。某些消息传递关系可以是显式消息,可用队列以及其他消息传递组件来管理。其他消息传递关系可以是隐式消息,其中程序流、数据、或其他元素可从一个代码元素被传递到另一个代码元素。
[0044]关系可以是共享存储器关系,它可表示可由一个代码元素写入而由另一个代码元素读取的存储器对象。当第一代码元素可获得对存储器对象的写入锁而第二代码元素可被置于等待状态直到写入锁可被释放为止时,可标识这样的关系。
[0045]可使用与关系有关的信息来设置断点。例如,可对跨所选关系传递的消息设置断点,例如当消息超过某一大小、频率、或包含某些参数或参数值时。
[0046]在描绘正在执行的应用的动画化的图表中突出显示对象。
[0047]可在描绘应用正被执行的动画化图表中突出显示对象。图表可包含表示代码元素的节点以及表示代码元素之间的关系的边。被突出显示的对象可表示数据元素、请求、进程、或可从一个代码元素穿越到另一个代码元素的其他对象。
[0048]被突出显示的对象可视觉上描绘某些组件可如何在应用中进展。突出显示可视觉上将代码元素链接在一起,使得应用程序员可理解关于某一特定对象的应用的流程。
[0049]在一个使用场景中,可处理web请求的应用可被可视化。传入请求可被标识并突出显示,且可被若干不同代码元素操作。描绘该应用的图表可将被突出显示的视觉元素(诸如亮圆圈)放在表示接收到该请求的代码元素的节点上。当该请求被后续代码元素处理时,图表可示出该被突出显示的亮圆圈遍历要由其他代码元素处理的各种关系。该请求可由多个代码元素处理,而该被突出显示的亮圆圈可接续地被描绘在这些代码元素中的每一个上。
[0050]被突出显示的对象可表示单个数据元素、一组数据元素、或可从一个代码元素传递到另一个代码元素的任何其他对象。在某些情况下,被突出显示的对象可以是可作为回调或其他机制来被传递的可执行代码元素。
[0051]回调可以是可作为实参(argument)被传递给另一代码的可执行代码,该另一代码可被期望在方便时执行该实参。在同步回调的情况下可执行直接调用,而异步回调可在以后的某一时间被执行。许多语言支持回调,包括C、C++、Pascal、JavaScript、L
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
imtoken助记词怎么填-imtoken钱包没有收益-imtoken矿工费太贵了-im钱包官网:token.im