CN104205062A - 剖析数据可视化 - Google Patents
剖析数据可视化 Download PDFInfo
- Publication number
- CN104205062A CN104205062A CN201380016591.5A CN201380016591A CN104205062A CN 104205062 A CN104205062 A CN 104205062A CN 201380016591 A CN201380016591 A CN 201380016591A CN 104205062 A CN104205062 A CN 104205062A
- Authority
- CN
- China
- Prior art keywords
- visual
- data
- profile data
- program
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013079 data visualisation Methods 0.000 title 1
- 238000004458 analytical method Methods 0.000 claims abstract description 26
- 230000000007 visual effect Effects 0.000 claims description 133
- 238000000034 method Methods 0.000 claims description 67
- 230000008859 change Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000004438 eyesight Effects 0.000 claims description 4
- 238000012800 visualization Methods 0.000 abstract description 42
- 230000007246 mechanism Effects 0.000 abstract description 18
- 230000002596 correlated effect Effects 0.000 abstract description 2
- 230000008520 organization Effects 0.000 description 53
- 230000006870 function Effects 0.000 description 51
- 230000008569 process Effects 0.000 description 30
- 239000000523 sample Substances 0.000 description 25
- 238000003860 storage Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 15
- 238000005070 sampling Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 10
- 210000003484 anatomy Anatomy 0.000 description 10
- 230000000712 assembly Effects 0.000 description 9
- 238000000429 assembly Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 230000015572 biosynthetic process Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000003745 diagnosis Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 239000007799 cork Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000002245 particle Substances 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000010422 painting Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- NJPPVKZQTLUDBO-UHFFFAOYSA-N novaluron Chemical compound C1=C(Cl)C(OC(F)(F)C(OC(F)(F)F)F)=CC=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F NJPPVKZQTLUDBO-UHFFFAOYSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009182 swimming Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000004382 visual function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
Abstract
剖析数据以许多种方式被可视化以视觉传达程序性能问题并便利于对其分析。在一个实例中,可以呈现提供了不同类型的程序剖析数据的视图的多个相关的可视化。而且,可以呈现逻辑分组的剖析数据以允许对程序执行的有意义的分析。可视化还可以反映关于所指定的性能目标的剖析数据的状态,以及提供机制以允许剖析数据的记录和回放等等。
Description
背景
剖析使得对程序行为的检查能够聚焦性能调整。剖析器是根据在程序执行期间收集的信息来生成程序剖析的自动化工具。剖析捕捉程序的行为特性。可从剖析标识程序的一个或多个部分作为优化的候选项。例如,剖析可以指示在执行特定的函数上花费了过量的时间。换言之,剖析有助于理解程序行为,以允许集中优化努力。剖析通常基于它们的收集数据的方法等来分类。
存在两种不同类型的收集剖析数据的方法,即检测(instrumentation)和采样。在检测方法中,向程序添加在执行期间收集信息的代码。此处,被添加的代码是在程序执行时测量程序行为的工具。例如,可测量函数调用的频率和持续时间。在采样方法中,使用操作系统功能周期性地停止正在执行的程序并对该程序采样以确定执行的当前状态。因此,可以注意到,程序花费20%的时间执行特定的代码点。因此,采样方法提供统计近似,而非确切的数据。
剖析数据通常被呈现为分解程序执行的调用树(也称为调用图)。例如,调用树可示出在程序中被遍历的函数执行路径。调用树的根节点可指向程序的入口点,并且树中的每个其他节点可标识被调用的函数以及性能数据,诸如被调用函数的执行时间。节点之间的边可表示函数调用,并且圈可指示递归调用。调用树可由开发者来分析,以标识程序热点,诸如占用一大部分执行时间的函数等。
概述
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一的目的是要以简化形式给出一些概念以为稍后给出的更加具体的说明之序。
简言之,本发明涉及剖析数据的可视化。可以呈现一组一个或多个可视化以便利于使用要么实时要么历史剖析数据的程序性能分析。根据一个方面,可以呈现提供了不同类型的剖析数据的视图的多个相关的可视化。根据另一方面,一组可视化可以相对于逻辑分组的剖析数据操作以允许对程序执行的有意义的分析。在此,剖析数据可以被归结为例如基于组织方案来传达关于程序或子系统以及其他内容的高级语义函数的信息。还提供了机制以允许记录并回放剖析数据并控制其粒度或范围。而且,可视化可以提供基于指定的性能目标的反馈。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图简述
图1是可视化系统的框图。
图2是代表性可视化引擎的框图。
图3是一组剖析数据的可视化的示例性屏幕截图。
图4是一组剖析数据的可视化的示例性屏幕截图。
图5是剖析数据的报告可视化的示例性屏幕截图。
图6是两个剖析数据的图表可视化的示例性屏幕截图。
图7是剖析数据的表格可视化的示例性屏幕截图。
图8是剖析数据的图表可视化的示例性屏幕截图。
图9是剖析数据的图表可视化的两个示例性屏幕截图。
图10是包括两个图表的剖析数据的可视化的示例性屏幕截图。
图11是示例性的程序用户界面的屏幕截图。
图12是程序剖析系统的框图。
图13是程序剖析系统的框图。
图14是代表性数据收集组件的框图。
图15示出用于开始/停止事件对的数据收集。
图16示出用于栈样本的数据收集。
图17是程序剖析的方法的流程图。
图18是分组剖析数据的方法的流程图。
图19是可视化剖析数据的方法的流程图。
图20是示出用于本公开各方面的合适的操作环境的示意性框图。
详细描述
剖析数据的可视化常规地受到几个问题的困扰。第一,数据是以太过粒度和抽象的方式来表示的。就是说,数据是以不能与用户的动作和/或有意义的程序执行语义(例如刷新窗口)相关联的时间标度来呈现的。导航以时间线呈现的完整的剖析会话因此变得困难或面对标识性能问题是无效的。第二,剖析器传统上针对历史信息操作。作为示例,可以开始一个程序,启动收集,训练程序,停止收集并后续分析所捕获的数据。虽然存在一些可以提供实时应用监视的性能工具,但是由于这些工具不能以灵活的方式来开始和停止、各种计数器不能彼此相关以及在所提供的分析和可视化方面存在受限的完善度,所以,它们受到很大限制。
下述的细节通常针对以各种方式的剖析数据的可视化以便利于程序性能分析。根据一个方面,可以呈现提供了不同类型的剖析数据的视图的多个相关的可视化。根据一个特定实施例,剖析数据的至少一部分可以是逻辑上分组的剖析数据以允许对程序执行的有意义的分析。在此,剖析数据可以被归结为例如基于组织方案来传达关于程序或子系统以及其他内容的高级语义函数的信息。可视化还可以反映相对于指定的性能目标的剖析数据的状态,并且提供机制来允许记录和回放剖析数据并控制剖析数据的范围。在一个实例中,该组可视化可以随程序执行同时被呈现。或者,该组可视化可以在历史数据上操作。
现在参考附图更详细地描述本发明的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
最初参考图1,示出了便利于经由可视化组和与其的用户交互的程序执行分析的可视化系统100。可视化系统100可以将任意收集和/或计算的剖析数据(又称程序-剖析数据)作为输入接受,并相对于其进行操作。而且,剖析数据可以是来自目前正在执行的程序实况流传送的实时数据或来自例如持久存储的日志所提供的历史数据。根据一个实施例,可视化系统100被配置为在逻辑上分组的剖析数据上接收或检索并操作。如下将进一步描述地,剖析数据可以被归结为根据组织方案的组,所述组织方案以独立于执行路径的方式定义了组以及组之间的关系。因此,剖析数据可以以逻辑上有意义的层级被显示,而不是以粒度函数层级被呈现。例如,剖析数据可以被归结为传送关于程序或其子系统的高级语义函数(例如打开文档、重新计算布局、在窗口中呈现内容……)的信息或在程序本身之外(例如项目人员)的信息以及其他内容的组。可视化系统100还可以被配置为响应于关于所提供的可视化或其他输出(例如文本、音频……)的用户输入。因此,可视化可以被更新以例如聚焦于用户感兴趣的特定数据段或特定粒度等级。还有,用户可以指定要被用于呈现数据的专用可视化并且组合一个或多个可视化等等。
可视化系统100包括可视化引擎110、数据存储120、收集组件130、检索组件140以及条件组件150。可视化引擎110(如在此所定义的也是一个组件)被配置为呈现一组一个或多个可视化。此处,呈现指的是将经编码的内容转换成用于显示的格式,或者生成具有稍后可在连接到计算机或其他基于处理器的设备的物理显示器(例如,LCD、触摸屏……)上呈现的显示格式的内容。可视化引擎支持各种类型的可视化或视觉内容,包括但不局限于,众多图表(例如线、条、饼…)、图像和文本内容以及其他内容。一旦接收或获取输入,可视化引擎110可以呈现一个或多个填充有剖析数据的可视化。根据一个实施例,可视化引擎110被配置为相对于与执行的程序相关联的剖析数据流实时地操作。或者,可视化引擎110可以相对于历史剖析数据(例如持久存储的日志文件)操作。在任何情况下,注意可视化不需要是静态的,而是可响应于获取的剖析数据被动画化。换句话说,当获取剖析数据时,可以更新可视化。
数据存储120是被配置为存储任意的且可能很大量的数据的计算机可读/可存取介质。例如,数据存储120可以被作为日志文件、数据库和/或存储器内数据表示来实现。在一种情况下,数据存储120可以实质上保存任何数据以便利于剖析可视化。而且,虽然被示为在可视化系统100之内,数据存储120还可以与在可视化系统100之内相反地驻留在可视化系统100之外或可以在可视化系统100之内或之外提供多个数据存储。
收集组件130被配置为累积并记录或保存数据到,例如数据存储120。例如,收集组件130可以保存剖析数据流以及可选的用户输入。根据一个特定实施例,收集组件130可以获取并保存正被训练的执行的程序或其它可视化的一个或多个屏幕截图图像。还可以保存相对于所述一个或多个屏幕截图图像的用户交互,例如鼠标移动、点击和文本输入。
检索组件140被配置为从数据存储120检索数据并将所述数据提供给可视化引擎110。根据一个实施例,检索组件140可以简单地将数据推送到可视化引擎。或者,检索组件140可以响应于来自可视化引擎110的参数化的请求提供数据。而且,检索组件140被配置为在将经处理的数据返回给可视化引擎110以供呈现之前执行对从数据存储获取的数据的各种处理(例如查询处理)。例如,可以返回满足请求的特定的剖析数据的子集。检索组件140还可以被配置为将数据保存到,例如数据存储120。例如,检索组件140可以将经处理的结果高速缓存到数据存储120以提供对以相同方式被参数化的请求的有效响应。因此,可以使用本领域中已知的各种高速缓存技术。
在一个特定实施例中,检索组件140可以允许历史剖析数据的回放。具体而言,检索组件140可以被配置为允许重放被启动、停止、暂停、后退到先前的时间点、前进到后面的时间点、减速或加速。例如,用户可以指令系统前进到感兴趣的特定的时间点,并随后暂停回放以进一步调查数据。而且,如果执行被描绘成片段,可以做出从第一片段到第二片段的移动。
条件组件150被配置为允许显著的运行时条件的指定,或者换句话说,性能目标。用户可以指定硬的和/或软的条件,例如与使用由条件组件150所提供的功能的程序的吞吐量(例如期望的帧速率)有关的条件。这些条件可以被直接或经由收集组件130保存到数据存储120,并随后由可视化引擎110获取和使用。可视化引擎110可以将这些条件视觉地作为用户反馈的形式来呈现。例如,可以将事件标记施加到时间线上,可以将特定颜色施加到图表、可以呈现可选的闪烁或其它条件失败或满足的动态指示符。根据一个实施例,可视化引擎110可以在消息窗口中呈现描述满足或未满足的条件的可读文本。
转向图2,描绘了代表性可视化引擎110。可视化引擎包括三个组件:环境组件210、数据图表组件220以及协调组件230。环境组件210被配置为生成以允许丰富体验的方式呈现一组可视化的集成环境。而且,单组控件可以被用于与各种可视化交互。根据一个实施例,环境可以包括用于选择一组剖析数据和应用于所述剖析数据的一个或多个可视化的功能。一旦被呈现,用户可以启动关于数据和其可视化的多个操作。例如,剖析数据的片段可以被隔离,而一特征可以被提供以移动到下一片段。而且,可以控制粒度或范围以允许对改变指定范围的剖析数据的特征(例如毫秒、秒、分钟…)进行放大和缩小。
数据图表组件220被配置为例如在集成环境中生成剖析数据的可视化。例如,可视化可以包括各种类型的图表,例如饼、线或条图表。然而,可以使用以有用的方式呈现数据的任意视觉机制。作为示例而非限制,可以由数据图表组件220提供执行的程序的一个或多个屏幕截图图像。
协调组件230被配置为跨剖析数据的可视化来协调或关联数据。根据一个方面,可以同时呈现许多可视化以便利于程序执行的分析。协调组件230允许可视化以某种方式被协调,例如基于时间(例如时间线)。在该方式中,所有的可视化将协同呈现剖析数据。作为示例,如果用户在一个可视化(例如线图)中启动对数据的特定片段的放大,则其它活动的可视化(例如条状图、饼图…)可以被更新以反映在给定时间段中的相同的数据片段。
下面是一系列帮助明晰和理解关于可视化系统100所允许的功能的示例性屏幕截图。屏幕截图仅仅是图形元素的一种可能排列。图形元素的其他类型的图形和排列也是可能的。因此,屏幕截图不旨在限制附加的权利要求的范围,而是提供了便利于进一步描述和理解可视化系统100所提供的功能的可能的表示。而且,虽然屏幕截图涉及关于web浏览器和在web浏览器内执行的web应用的剖析,但所请求的主题并不局限于此。另外,虽然讨论聚焦于可视化,其它的机制,例如音频,也可以被用于进一步丰富在分析剖析数据中的用户体验。
图3示出了可被呈现并显示以便利于程序执行分析的一组可视化的屏幕截图。具体而言,多个相关的可视化被用于呈现不同类型的剖析数据的视图以便利于程序分析。例如,可以如下使用许多不同的图(例如线、条、饼…)、图像(例如运行的程序的屏幕截图)以及文本。而且,可以在具有一组公共控件等的集成的剖析环境中呈现这样的可视化。
区域310被指定用于目标控件。换句话说,经由选择信号(例如拖放、点击、语音命令…)可以选择剖析数据的特定子集或超集以供显示。在此,三个web浏览器处理被显示为缩略图,它们是可选择的。第一web浏览器缩略图相对于其它缩略图的较大尺寸指示了它被选中并且这样剖析数据对应于该特定处理。除了作为收集关于执行的程序的实时信息的工具之外,该目标控件还可以被用于导航持久保存的日志/从持久保存的日志进行选择。另外,目标控件不局限于在本地机器上运行的处理/其它目标。在附加设备上运行的远程实例或web应用也可以被呈现在区域310中。
区域320示出了可以针对剖析数据被部署的可用的可视化池。根据一个实施例,可以将可视化从区域320拖放到另一区域中,以便针对当前剖析数据呈现该可视化。换句话说,可以基于标识该可视化的选择信号(例如拖放、点击、语音命令…)来应用可视化。如此后将进一步描述地,以许多方式来组织并覆盖可视化是可能的。
区域330是包括剖析数据的非基于时间线的可视化的可视化的占用者区域。就是说,所述可视化包括不与时间线公开相关联的呈现。在此,饼图332示出在应用的最后的帧呈现期间在几个子系统之间所花费的时间的百分比细分。作为示例,饼图322可以指示用于在浏览器中运行的执行的web应用的中央处理单元利用率,其中,白色部分指示空闲时间,而黑色部分指示实际的处理器利用率。而且,向饼图332的左边显示时间相关的屏幕截图图像334。屏幕截图图像334是在特定时间点处的目标web应用的视图。该视图对于为了理解网页的状态和/或与剖析数据的特定序列相关联的最近用户动作来说是有用的。注意,该可视化可以本身被覆盖到目标区域310中的缩略图图像上。同样,在一些诸如实时收集场景的实施例中,这种缩略图可以被用作目标处理的事件代理。就是说,所述缩略图可以被用作随后将被转发给实际的目标应用的事件/其它消息的宿(sink)。例如,诸如鼠标移动、点击和文本输入之类的用户输入可以被覆盖到屏幕截图图像334上。
区域340示出基于时间线的可视化的占有者区域。该区域可以包括允许并排显示的任意数目的“泳道(swimlane)”。在此,示出了两个可视化,即线图342以及线和条状图344。线和条状图344示出在彼此的顶部覆盖可视化的能力。而且,线图342以及线和条状图344描绘了根据公共的范围或选择的时间等等的概念来呈现可视化。诸如饼图332和屏幕截图图像334之类的其它可视化还可以将它们的呈现同步到这样的范围或选择的时间。用户可以选择(通过选择信号)关于区域340中的可视化感兴趣的邻近的时间序列。在这种情况下,已经选择了区域346。在这个选择过程期间或之后,可以根据选择的剖析数据来更新其它可视化。例如,区域330中的可视化可以响应于所述选择改变它们的外观。
示出了便利于记录并回放数据的一组控件350。除了诸如启动记录、暂停回放和跳到下一项等等之类的特征外,功能还可以是特定于实现的。例如,跳到下一项可以与诸如下一文档对象模型(DOM)事件、下一代码生成序列点、下一被呈现的帧或下一失败诊断消息等等之类的几种有意义的序列点相关联。滑块360是一种允许控制回放的速度的控件。在其它实施例中,类似的滑块可以被用于控制剖析数据的放大和缩小和/或控制剖析数据的记录缓冲的大小(例如记录最后的25秒的剖析数据)。
区域370是用于按照函数名等呈现最好以可滚动形式显示的分析/结果的消息显示区域,所述可滚动形式诸如诊断消息的列表和/或剖析数据的诊断概要。这些条目可以与其它可视化选择同步,并且它们自身可以被用作选择机制。例如,如果用户选择时间线上的一时间序列,在区域370中所显示的诊断消息可以被限制到选中的时间帧。相反,用户可能双击在区域370中所显示的诊断消息,在这种情况下,所述选择可以被更新到产生该错误的时间点处。所有其它可视化也可以被更新到对应于该时间点。
图4示出一些附加的时间线可视化的屏幕截图。可视化410借助显示了剖析数据的完整范围的端对端时间线控件来示出导航帮助。例如,它可以表示所收集的日志的完整内容或实时收集的数据的当前缓存。这个主数据视图可以被限制于这个特定控件/可视化。在这个实施例中,剩余的可视化可以基于所选的窗口更新它们的内容,所选窗口可相对于剖析数据的完整范围被指示。而且,这种时间线视图可以用特定兴趣的事件来注释。在此,在可视化左上方处的下拉菜单可以被用于选择在时间线上标记哪些事件。例如,可能不是所有的诊断消息都应该被显示,但是所有的文档对象模型事件应该被显示。注释可以采用各种形式。在此,它们对应于以不同方式填充的方块。在一个实例中,图例可被显示为例如工具提示来明晰注释。作为示例,不同地被填充的方块可以被用于在页面事件(例如DOM内容被加载)、用户事件(例如鼠标点击)和跟踪标记之间进行区分。
可视化420示出由逻辑分组所生成的中央处理单元使用可视化。该视图可以使得其立刻明显,例如,大量的时间段被花费于呈现专用的用户界面更新帧。
可视化430示出嵌套的执行视图。在此,显示逻辑子系统的分层结构。重新呈现页面的通用请求,例如,可以导致一系列嵌套执行,例如,以处理CSS规则、在页面中布局元素或呈现每个组成元素。
可视化440提取语义操作到易于理解的可视化,该操作与其它选择控件/可视化相关。在此,示出了呈现或描绘一页面所花费的时间,这样,这种操作的时间段和时间长度相对于时间线由多边形的位置和大小来注释。
可视化450将最好理解的信息呈现为文本,将内容呈现为可滚动列表或其它形式,但是还是保留了与其它视图/剖析范围选择器关联。在这种情况下,可视化450是被呈现用于剖析数据的当前范围的剖析报告(例如执行各种功能所花费的时间的调用计数和报告)。图5示出另一种可能的报告可视化510,该可视化对特定时间/剖析数据段的级联样式表(CSS)剖析数据进行分解。这两个报告的细节等级可以被调整,例如借助下拉菜单。
图6和7是与web浏览器相关联的剖析数据的可视化的示例性屏幕截图。此外,可视化可根据组织方案(诸如附录A中提供的那个)来产生,并如将在此进行详细描述的那样。在该实例中,组织方案被编码成XML文档,其中标签标识组,并且结构定义组之间的分层关系。将在随后的章节中描述基于组织方案的分组。
图6是示出子系统对CPU的执行利用分解的示例性屏幕截图,如由附录A中指定的组织方案所定义的。示出了允许对检测(例如开始/停止对)和采样(例如栈样本)的两个收集机制进行比较的两个视图610和650。视图610和视图650中的各自包括用图示意单个中央处理单元随时间的百分比使用的柱状图630和670。此外,每个图区分经由窗口620和660中的复选框可选择的组。
图7是剖析数据的表格可视化的示例性屏幕截图。更具体地,屏幕截图描绘了如组织方案所定义的、详细的、子系统对中央处理器单元(CPU)的利用分解。表格指定了相对于多个行和列的组和子组。被标记为“进程”的列710指定了与单个二进制或可执行文件相对应的组的分层结构的根。列715提供线程标识符的分组。对于每个线程标识符,存在三层子组,如由列720、725和730所指示的。例如,列720标识名为“三叉戟”的浏览器呈现引擎,它被分解成列725中所示的“布局”和“显示”等。此外,列725中的“布局”又被分解成列730中所示的“构建块”和“构建布局”组等。注释并聚合每个分组和子组的剖析数据,并在列735、740、745、750、760和765中提供分别对应于开始时间、结束时间、持续时间、CPU利用的百分比、时间的百分比和计数的该剖析数据。根据该表格,传递高级的有意义的信息。用户可从快速一瞥中确定浏览器正消耗过多的时间在布局中,并且优化努力可因此聚焦在程序处理布局的部分。
图8示出随时间的帧速率的可视化810。该可视化可以为在测试下的应用(或为持久存储到日志的剖析数据)提供关于每秒实现的帧速率的即时反馈。可视化810可以表示所有收集的数据,所述数据针对特定大小的缓存或窗口被呈现,或受限于由当前暂停或选择状态所指示的特定序列,如由用户所提示的那样。虽然未在此处示出,可以理解,该可视化可以覆盖有其它有用信息(例如指示兴趣点的标记,诸如“导航到新页面”或“帧速率下降到可接受的阈值之下”)。可视化810以及其它可视化可以与更广泛的系统相关,所述系统包括将该可视化本身用作选择控件的可能性。例如,用户可以点击图表的例如在其中帧速率下降到某个可接受阈值之下的区域,在该情况下,其它可视化可以更新它们的视图以反映那个时间点。图6的CPU利用率的可视化可以,例如,使得其所做的帧速率由于在布局页面之前处理CSS规则中花费的大量时间段而被折衷的事情变得清楚。
图9示出提供了一种在子系统中花费的时间的“均衡器”视图类型的两个可视化910和920。在这些可视化中,显示了几条栏,这些栏本身表示在子系统(诸如显示、布局、解析和JavaScript(例如执行代码))中所花费的时间。还可以添加附加的栏,例如以在诸如开发者授权的JavaScript和与访问浏览器对象模型相关联的JavaScript之间进行区分。这样的视图提供了容易理解的执行概要并类似于在其中不同的频率对应于不同的子系统的音频均衡器。所述可视化可以被动画化和同步到当前选择。应该理解,所述动画可以根据回放的速度或如何更新当前的时间线选择以及其它因素来改变/更新其显示。
可视化920通过阐述在视觉外观(例如对角线阴影表示、颜色中变化、闪烁…)中的改变来指示还没有满足某个诊断标准或性能目标,以详细说明可视化910。例如,帧速率可能由于在显示子系统中所花费的大量时间段而落到可接受阈值之下。这样,可视化为收集实时信息或回放所收集的日志的用户提供了有用的自组织诊断机制。遵从差的网页性能的报告的用户,例如,可能将该可视化连接到页面的正在运行的实例并开始与之互动。在做出手势时,例如悬停在折衷帧速率吞吐量的程序的特定元素上,可视化可以提供性能被折衷的清楚反馈。
还注意,可视化可以被用于用事件或通知来注释通用事件流。就是说,可视化不仅是感兴趣的动画/其它用户界面数据的源,而且可视化本身还可以负责处理/分析剖析数据以便提供诊断信息或操作的概要以及其它内容。更广泛的系统包括用于将每可视化事件/其它数据合并到通用事件流、全局时间线控制器、公共错误报告区域等。与特定可视化相关联的数据可以是可标识的。这允许,例如,用户“拖出”特定可视化,伴随着所有其事件、诊断消息和与其相关联的其它人工产物也都将离开的结果。
图10提供了与图8的示例类似的示例,其中可视化1010包括随时间1020的帧速率的图表。然而,在此,选择了在其中帧下降的时间序列。可视化1010还包括将其动画化限制于剖析数据的这个子集的子系统中时间视图1030。因此,清楚地揭示了在显示子系统中花费了太多的时间。
图11阐述了作为动画呈现的另一个有价值的诊断可视化1110。在这个示例中,已经提供了呈现平台来发生描述已经被无效且因此被重新绘涂的区域的事件。该数据(例如在页面上以某种颜色描绘轮廓)被覆盖有该页面的屏幕捕捉。这使得其立刻显现该页面被如何重新绘涂,其在例如诊断帧速率问题时将是有重要意义的。在此,存在三个高亮的区域,即区域1112、区域1114和区域1116。响应于例如当前时间线选择,这个动画化的视图可以被实时呈现,或以各种速度被重放。该特定可视化可以在它能在使得以其他方式对于用户来说是透明的某些类型的处理变得明显的方面很有用。例如,劣质构造的页面可能包含持续引起页面上的失效元素的周期(导致页面的永久失效/重新呈现,甚至是用户输入的完全缺失)的CSS规则/JavaScript。这种特定可视化还可以有用地应用于页面呈现的布局阶段,在该阶段中计算所有页面元素的大小和位置。而且,虽然未曾示出,但应该注意,可以捕捉和覆盖或模拟用户动作以帮助理解用户动作,例如鼠标移动、被点击区域或被输入文本以及其它内容。还有,注意可视化1110自身不需要是静态图像,但也可以对其动画化以便在执行期间它被呈现时示出图形用户界面。
而且,虽然未示出,但可视化系统100可以支持差分机制。作为示例,考虑包括历史数据的两个日志文件。在此,可以呈现对应于具有相关的剖析数据的这两个日志文件的两个屏幕图像。而且,可以用同样的事件标记(例如标识页面启动、标识公共用户界面操作组…)来标记剖析数据以便利于比较。
转而关注图12,示出了程序剖析系统1200。程序剖析系统1200主要基于对更广泛系统内(例如,程序拥有的、程序的子系统拥有的、依赖组件内的子系统拥有的…)代码和/或其身份等的语义目的的高级理解,允许程序性能的自顶向下的视图。这可通过处理和分析数据收集组件1210所收集的剖析数据来实现。
数据收集组件1210被配置成获取关于程序1212的剖析数据。剖析数据可以是与程序的执行相关联的任何的任意收集和/或计算的数据。在一个实例中,这种剖析数据可与关于特定函数/操作的执行时间相对应。在另一个实例中,剖析数据可对应于非执行时间数据,包括一个或多个事件的出现或频率、以及任选的与一个或多个事件的出现相关联的有效载荷,其中,事件是正在执行的程序已经命中代码中的特定点的信号,并且有效载荷是与命中代码中的特定点相关联的数据。作为示例,非执行时间剖析数据可包括所分配的字节或对象、页刷新、注册表读/写、所产生的工作者线程、或相关联的二进制代码等。程序(也被称为计算机程序)1212包括计算机编程语言中指定的指令集,该计算机编程语言在由处理器执行时执行该指令集规定的动作。数据收集组件1210可利用包括检测和采样的各种技术来从正在执行的程序收集剖析数据。程序1212所执行的工作可由例如操作系统收集的事件/执行探针(例如,来自被检测的代码的事件追踪事件或回调)或栈样本来捕捉。可收集允许在执行时间(例如,中央处理单元利用或活动执行中消耗的精确的周期)、堆分配、或可在所生成事件的定制有效载荷中表述的其他任意信息方面的分析的数据。
数据收集组件1210可利用检测和采样的组合。每种方法收集的数据可扩充另一种方法。例如,数据可被组合/合并、取平均值、交叉检查、和/或统计地归一化等。以此方式,两种方法的优点可被利用,并且缺点可被抵消。作为示例,两种方法可引起观察者效应,这意味着观察程序的动作本身就可影响程序。采样通常不会引起显著的观察者效应,但会带来不如检测所收集的那么精确的数据。因此,可在适当时向采样数据补充检测数据。针对观察者效应的额外缓解也可通过创建剖析桶来提供,该剖析桶对与操作系统代码相关联的剖析数据进行公开地分组(从而排除其它数据),该操作系统代码在根据所检测的代码的事件生成以及根据代码采样栈的生成期间执行。此外,当接收到关于所检测的探针/事件的栈时,也可启用轻量检测方法。假设为所分配的字节单独地启用单个事件(这几乎不引起观察者效应)。如果“所分配的字节”事件与栈相关联,则可根据栈指定的装桶来对所分配的数据进行分组。注意,在此示例中,完全不启用采样。因此,运行时事件和/或所收集的栈可用于组织剖析数据。
分组组件1220被配置成根据组织方案1214将利用数据收集组件1210收集的剖析数据归属到特定的组或桶。换言之,剖析数据可基于描述性机制被相关和相关联,该描述性机制定义了组以及组之间的关系。在一个实例中,组可传递关于程序或其子系统的高级函数(例如,打开文档、重新计算布局、呈现窗口...)的信息。除前述内容之外,分组组件1220可被配置成基于给定的组织方案1214来初始化数据结构,并将剖析数据填充到组中。其他实现也有可能,包括但不限于用组信息来标记剖析数据。无论何种情形,分组组件1220执行的处理结果是被分组的数据,该数据可被容纳在本地或远程可访问的数据存储1240中。
组织方案1214可例如按照函数名(例如,二进制文件(例如可执行文件)内的完整函数名)定义分组。可在父与子的分层关系中表述组。然而,组可通过例如将其定义为兄弟节点来彼此互斥地构建。组可包括例如作为子节点的子组,也被称为类别(category)。然而,注意,除非以其他方式显式地表示,对术语“一个组”或“多个组”的使用旨在包括子组或类别。函数可在任意层级与组相关联,并且可出现在任意数量的组中。换言之,函数不限于被归属到单个组,而相反可出现在任何粒度级别的多个组中。函数信息也可用于例如基于栈样本和/或所检测的收集/基于事件的收集来聚合数据。例如,二进制文件名和函数名可用作分组的基础。这在区分跨越多个二进制文件的函数方面可以是有帮助的。组还定义了不显式地提供二进制/函数细节、但提供所收集的数据中可用的事件标识符的事件。这种情况中的二进制/函数信息可由提出指定事件的代码位置集合来暗示。在至少某些操作系统中,在生成区分提出事件的多个代码位置的事件中,栈将是可用的。此外,注意,此处提供的组分层结构可以独立于函数执行路径。这样的理由有两个。第一,在被检测的情形中,栈的概念可被采纳用于对数据分组,其与实际的执行栈完全解耦合。第二,在采样的情形中,任意唯一的栈可与同一组相关联。
还可为各个组指定优先级,以辅助对数据分组。更具体地,优先级允许基于最近的栈帧(例如,文字代码栈、虚拟事件开始/停止对栈)来打破默认的组织规则。这样的优先级值可相对于所有其他分组来表述,并用于辅助分组/装桶决策。如果针对用于与存在以保存数据的其他候选组相比具有较低指定优先级的组考虑数据,则该数据可被归属到具有最高显式或隐式优先级的替换组。在分层关系中定义的组可基于该分层结构具有隐式优先级。如果例如父“A”包括子“B”,则“B”被认为是比“A”优先级高的组。因此,用栈“A::B”收集的数据将因此与组“B”相关联。然而,如果组“B”被显式地指定为比组“A”低的优先级,则数据将被分组到组“A”。
可按各种方式将剖析数据相关,以许可各种范围内的灵活查询等。作为示例,剖析数据可以跨进程边界或跨机器而延伸。在一个实例中,剖析数据可根据时间戳按时间来分组。在更细粒度的层级,剖析数据可按中央处理单元或线程来分组。此外,统一活动标识符可用于以有用的方式来跟踪线程间通信,例如通过跟踪与多线程事务相关联的活动。
在一个实例中,组织方案1214可被具体为数据文件,该数据文件可被创作、编辑、在其他进程带外维护、或独立于其他进程来维护。此外,组织方案1214可被轻松地传递。这可允许代码专家捕捉分析程序(对该程序来说,他们是专家)的剖析数据的有用模型,并将该模型分发给非专家的用户。例如,web浏览器的内部工作中的专家可生成组织方案,并将该方案分发给web应用开发者以辅助性能调整。
在一个特定的实现中,组织方案1214可用XML(可扩展标记语言)来表述,因此提供了大体上的可读性。在该实现中,并且如下面进一步描述所采用的,组或子组被称为标记或标记集合,其中标记指示组,标记集合是指组的集合。此处稍后提供XML中指定的组织方案的示例。
方案生成组件1230被配置成方便组织方案1214的生成。在一个实例中,人类用户可任选地采用模式匹配或辅助说明的其他过滤机制(例如,正则表达式、使用通配符…),来手动地创作组织方案1214。方案生成组件1230可例如基于可用信息(包括上下文信息)来允许组的自动或半自动(例如,有用户辅助的)生成。作为示例而非限制,存储了与对程序作出的改变有关的信息的源控制历史可由方案生成组件1230来挖掘,并可用于自动地生成组。例如,“代码所有者”组可被创建,以允许剖析数据被代码的团队或个人所有者分解。这允许用户轻松地标识有助于性能问题的专家。
查询处理器组件1250被配置成允许执行针对已分组数据的查询。给定一个查询,查询处理器组件1250可利用已知或新的机制从数据存储1240提取满足该查询的结果并将其返回。例如,可视化或诊断工具可采用查询处理器组件1250来获取数据。
可视化系统100被配置成允许将已分组的剖析数据可视化。剖析数据可以按任意数量的方式来呈现,而不限于常规的调用树。此外,由于在逻辑有意义的层级对剖析数据进行分组,因此可视化可利用分组,并进一步辅助人类用户理解剖析数据。根据一个实施例,可视化系统100可生成图形用户界面,该图形用户界面图形地描绘已分组的剖析数据并允许与数据交互。例如,可视化系统100或人类用户可创作针对已分组数据的查询,并根据查询返回经过滤的结果。此外,可提供允许用户探索以获取更详细的数据、以及上卷以在更抽象/更高层查看数据的机制。
虽然程序剖析系统1200包括可视化系统100,但是应当理解,可视化或诊断工具可以在程序剖析系统1200的外部。在该场景中,交互可通过类似的方式来实现,例如通过查询剖析系统以得到必需的数据。附加地或替换地,在可视化系统是一个事件流的订户的情况下,程序剖析系统1200可以将剖析数据作为这样的事件推送到可视化系统100。此外,注意,可视化系统100在各个方面是可扩展的。例如,可视化系统100最初可支持第一可视化集合。接下来,第二可视化集合可例如经由第三方插件或通过对程序剖析系统1200的更新/升级被添加。
订阅组件1270提供散布已分组数据的附加或替换方式。更具体地,数据存储1240中容纳的已分组数据可根据发布/订阅模型来递送。订阅组件1270可供应并管理订阅,并且将已分组数据发布到感兴趣的订阅者。
程序剖析系统1200不限于程序的实时执行,或换言之收集剖析数据方面的操作。另外,程序剖析系统1200可在历史数据方面或在收集后(post-collection)时操作。例如,任意的组织方案可被覆盖到持久保存的日志上,以允许数据在就程序功能和结构而言有意义的层级上被查看。换言之,可通过应用替换的分组来提出针对追踪数据的任意数量的视图。
如图12所示,组织方案1214可不仅在程序剖析系统1200的外部还可在程序1212的外部。这有许多益处,包括便携性以及允许组织方案被轻松地改变等。然而,所公开的主题不限于此。在替换的实施例中,组织方案1214可被嵌入到程序1212或其版本中,如图13所示。例如,组织方案可以此方式被编码,使得信息与诸如检测事件的一部分的剖析数据一起来提供。更具体地,组织方案可被编码到程序函数名中。另外地或另选地,指示组或子组的串标识符可与程序的函数或其他部分相关联,并与事件一起提出。
此外,用于生成组织方案1214的进程可被编码到程序1212中,而不在程序1212中对组织方案1214进行编码。方案生成组件1230随后可基于已编码的进程(例如在运行时)来自动地生成组织方案1214。作为示例,在运行时,任意分组可由二进制名称来创建,使得在第一二进制文件的执行期间收集的全部剖析数据被归属到第一二进制文件,在第二二进制文件被执行时收集的全部剖析数据被归属到第二二进制文件。另外,方案生成组件1230可被配置成当例如数据正被收集时实时地自动地更新组织方案1214,或作为在收集日志上动态地重新生成新视图的一部分来实时地自动地更新组织方案1214。
图13描述了代表性数据收集组件1210。如前所述,数据收集组件1210被配置成从程序中获取剖析数据,这些数据可接下来根据组织方案被分组。数据收集组件1210包括样本组件1410和检测组件1420。样本组件1410被配置成例如通过对操作系统作出适当的调用并获取结果,在执行期间初始化对程序的采样。在一个实例中,样本是在时间的特定时刻收集的栈(或者作为诸如分配事件的特定代码操作的结果,或者作为经组织的收集进程的一部分,将根据该收集进程创建代码执行的概要图)。检测组件1420被配置成接收、检索或以其他方式获得或获取来自程序检测的数据。此处,数据可以是探针数据,实际上例如开始/停止事件对。在一个实例中,采用开始/停止事件以获取有效载荷。在其他实例中,开始/停止事件可用于划分有趣的边界(没有显式的有效载荷)。可获取任何所生成的事件的时间戳和调用栈。因此,事件也可被称为隐式地携带那些有效载荷。样本可被认为是系统用时间戳和当前的调用栈有效载荷强制“代码正在执行”事件。此外,注意,可用活动标识符标记事件,该活动标识符可以跨各种上下文(诸如线程)流动到其他事件中。因此,该数据可用于以灵活的方式来使剖析数据相关。
组合组件1430被配置成允许以各种方式使用检测和采样这两者。例如,每种方法收集的数据可扩充另一种方法。更具体地,数据可被组合、用于交叉检查结果、和/或统计地归一化等。以此方式,两种方法的优点可被利用,并且缺点可被减轻。作为示例而非限制,可用更精确的检测数据来补充本质上不太精确的样本数据。
上下文检测组件1440被配置成检测上下文切换,或换言之处理上下文中的改变。例如,上下文切换可与共享CPU的多个进程相关地出现。在这样的多任务环境中,进程可被中止并且CPU的状态可被存储,使得稍后可从同一点继续该进程。换言之,一个进程被切换到中央处理单元以外,使得另一进程可以运行。一旦检测到与正被剖析的程序有关的上下文切换,数据收集可被挂起直到处理继续或所收集的数据可被标记,使得程序剖析系统1200可区分与程序相关联的数据以及不与程序相关联的数据。以此方式,数据可被排除。例如,执行时间的函数调用的持续时间可排除在执行与正被剖析的程序无关的进程上消耗的时间,或者换言之,由于上下文切换与正被剖析的程序有关的不活动的时间段。
考虑结合图15用XML创作的以下组织方案,其中标记标识组。
该组织方案涉及数据集合(包括三个任意分组(也被称为标记)“A”、“B”和“C”的多个开始/停止事件对)的检测方法。图15示出9毫秒的事件流时间线1510,这是仅出于说明目的选择的粒度级。在该时间线1510中,与组/标记“A”相关联的事件开始,如“A_活动1_开始”组织方案中所指示的。在执行期间并在与标记“A”相关联的退出事件之前,与组/标记“B”相关联的事件激发,如“B_活动1_开始”表示的。当“A”和“B”在进行中时,与组/标记“C”有关的事件(C_活动1_开始)在3毫秒处出现,并且退出事件(C_活动1_开始停止)在4毫秒之前出现。在4毫秒处,上下文切换出现,并且这个特定的活动行被挂起。如所指示的,在4、5和6毫秒期间将不对执行数据进行归属。在7毫秒处,标记“B”结束执行,并且在8毫秒处,标记“A”结束。在9毫秒处,标记“C”的开始/停止对出现。由于标记“A”和标记“B”都不在进行中,因此该时间单元被添加到标记“C”。因此,存在上下文切换之前的时间1520、上下文切换期间的时间1530和上下文切换之后的时间1540。在时间1520期间,1毫秒被归属到组/标记“A”、“B”和“C”中的每一个。在时间1530期间,没有时间被归属到任何分组。在时间1540期间,1毫秒被归属到组/标记“A”、“B”和“C”中的每一个。
以下是一个类似的场景,除了数据收集机制是采样而非检测。考虑结合图16用XML指定的以下组织方案,其中标记标识组,结构定义组之间的分层关系。
在此,为栈样本的分组定义组织方案。如图16所示,收集了6个栈,在上下文切换之前的时间1610期间收集了3个,在对应于上下文切换的时间1620期间收集了0个,在上下文切换之后的时间1630期间收集了3个。在第一样本1612中,只有函数“A”正在执行。在第二样本1614中,函数“B”已被函数“A”调用,得到“A”和“B”的栈(A::B)。如组织方案所定义的,与该代码栈相关联的时间被归属到“B”。在第三样本1616中,函数“C”已被由函数“A”调用的函数“B”调用,得到“A”、“B”和“C”的栈。根据组织方案,该代码栈的时间被归属到“C”。由于上下文切换,没有在时间520期间收集的样本。在第四样本1632中,只有函数“A”和“B”保持运行,得到“A”和“B”的栈(A::B),并且时间被归属到“B”。在第五样本1634中,代码栈只包括函数“A”,接下来导致时间被归属到“A”。随后,在样本六1636中,函数“C”被函数“D”调用,得到“D”和“C”的栈(D::C)。在这种情况下,“C”是与已定义的组相关联的最接近的帧,因此它被添加到组/标记“C”。注意,在检查分层XML的基础上可能严格假设的情况下,“A”和“B”都不需要位于栈中以便提供这种装桶。
图16还有助于澄清系统中优先级的角色。假设组“C”已被赋予比“A”或“B”低的优先级(撤销在缺少任何其他显式标记的情况下,由子的优先级比父高的事实所建立的隐含优先级)。在这种场景中,第三个收集的栈“A::B::C”将实际被归属到经分析的栈中最高优先级的组:组“B”。第六个收集的栈“D::C”将仍被归属到组“C”,如上所述。
还要注意,诸如之前的组织方案的组织方案可采用与符号/事件名有关的通配符和/或模式匹配。例如,考虑“module=‘*’method=‘malloc’”中使用星号通配符。在此,将跨全部模块来调用分配例程。作为另一示例,考虑“method=‘ClassOne::*’”。在此情况下,标识“ClassOne”的全部成员。
返回到图3,提供关于如何采用关于分组的检测和采样的附加细节。检测方法利用多个事件开始/停止对来划分有意义的边界并分离剖析数据。在此场景中,事件是正在执行的程序已经命中代码中特定点的信号。在此,存在与开始和停止相关联的一对事件。例如,开始事件可指示页面呈现已经开始,并且停止事件可指示页面呈现已经终止。此外,假设存在将包括与事件“B”和事件“C”相关联的数据的任意组“A”。当事件“B”和事件“C”开始和停止时,居间执行时间可被聚合并被归属到组“A”。用开始停止对指定的间隔可因此被合并到逻辑组“A”中。换言之,多个事件可用于划分分组的边界。此外,注意,事件可与非执行时间剖析数据相关联,该数据包括所分配的字节或对象、页刷新、注册表读/写、所产生的线程等。因此,事件可指示例如“X”个字节被分配。
根据采样方法,采用经采样的栈和时间戳,而非具有事件开始/停止对。可相对于一个或多个特定栈来定义组。换言之,栈的子集被映射到一个或多个逻辑组。在检测方法中,诸如“C”的事件何时激活是已知的。然而,还存在对应于事件“C”激活的栈。另外,事件“C”可从多个地点被激活,因此可存在许多可被归属到组“A”的不同栈。例如,可以指示栈“A::B::C”和栈“X::Y::C”指示事件“C”,并映射到组“A”,但是栈“D::E::C”不会。换言之,检测指示事件“C”可能已经激活的经验代码条件,并且因此,相关联的剖析数据应被归属到逻辑组“A”。有了检测,有可能精确地确定程序中正在发生着什么,而采样是近似。采样在本质上指示剖析数据在程序被检查时被归属到逻辑组A的特定的时间百分比。
当与事件开始/停止对一起工作时,这些对导致逻辑分组,并允许在不查阅栈的情况下归属相关联的剖析数据以及聚合居间数据点。例如,当诸如呈现的事件开始,字节被分配,并且接下来呈现事件停止的事件时,所分配的字节被归属到例如组“A”。不需要查阅栈。然而,如果不采用事件开始/停止对,则可存在与所分配的字节相关联的栈。在这种情况下,可以确定或推断所分配的字节被归属到组“A”。因此,与附加数据组合的栈允许系统回头执行同一事件开始/停止对分组。在只采用样本栈的另一场景中,可采用执行时间采样。在此,能够被揭示的信息是在逻辑组中执行所消耗的近似时间等。换言之,样本本身是在逻辑上被分组的。
应当理解,分组信息无需限于在组织方案中表述的组织剖析数据的信息。作为示例,考虑数据流,该数据流将分组开始/停止事件对以及另一感兴趣的事件(诸如字节被分配)交错进行。在此情形中,分组开始/停止事件对可被用作对字节分配事件分组的基础。换言之,所分配的字节可被归属到与事件开始/停止对相关联的组。当然,组织方案中表达的栈-分组信息可被利用,并被应用到与例如事件有效载荷相关联的回调。
参考若干组件之间的交互已经描述了上述系统、架构、环境等。应该理解,这样的系统和组件可以包括其中指定的那些组件或子组件,某些指定的组件或子组件,和/或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以组合成提供聚集功能的单个组件。系统、组件、和/或子组件之间的通信可以根据推送和/或拉取模型来实现。组件也可以与一个或多个其他组件进行交互,出于简要考虑在此未具体描述其他组件,但本领域的技术人员均已知。
此外,以上公开系统以及以下方法的各个部分可以包括或采用基于人工智能、机器学习或知识或规则的组件、子组件、进程、装置、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器等)。这样的组件和其它组件可以自动化其执行的某些机制或过程,由此使得系统和方法的各部分更为自适应以及高效及智能。作为示例而非限制,可视化系统100可使用这样的机制来基于历史和上下文信息来推断可视化。
考虑到以上描述的示例性系统,参考图17-19的流程图将可以更好地理解依照所公开的主题实现的方法。尽管为了说明简洁起见,按照一系列框示出和描述了方法,但是,应该理解和知道,所要求保护的主题不限于框的次序,因为一些框可以按与此处所描绘和描述的不同的次序进行和/或与其他框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
参考图17,示出了程序剖析的方法1700。在附图标记1710,可获取剖析数据。在一个实例中,这种数据可经由代码检测、采样或这二者来获取。或者,历史剖析数据可从例如日志或其他持久存储的文件中接收、检索、或以其他方式获得或获取。在标记1720,可根据组织方案将剖析数据归属到组,该组织方案定义组以及组之间的关系。换言之,组织方案可被覆盖到剖析数据上。此外,分组可与程序的高级函数或程序的子系统相关联,使得组是对程序分析有意义的抽象。作为示例,与第一组函数相关联的执行时间和中央处理器利用可被归属到组“A”,该函数负责浏览器窗口中内容的布局,而与显示浏览器窗口的第二组函数相关联的相同数据可被归属到组“B”。此外以及根据一个实施例,与上下文切换相关联的剖析数据被排除。在附图标记1730,可基于所归属的组来呈现数据,以对已分组的数据进行可视化并辅助诊断性能问题。在一个实例中,已分组的数据可被容纳在数据存储中,该数据存储可被查询以检索用于可视化的必需数据。此外,可视化可被具体化为图形用户界面,该图形用户界面可允许人类用户发起或修改查询,并且影响呈现得自这些查询的数据的方式。此外,替换的组织方案可被应用到数据,以进一步辅助分析。
图18是描绘分组剖析数据的方法1800的流程图。在附图标记1810,接收、检索或以其他方式获得或获取组织方案。组织方案可指定组以及组之间的关系。在一个实例中,可任选地利用模式匹配或辅助说明的其他过滤机制(例如正则表达式、使用通配符…),来手动地创作组织方案。另外地或另选地,组织方案可基于上下文或其他可用信息来自动或半自动地生成。在标记1820,可基于方案来创建、或实例化数据结构。例如,可为每个已定义的组创建结构。在附图标记1830,例如当剖析数据被接收时,可用该剖析数据来填充所创建的数据结构。以此方式,剖析数据可被归属到组。接下来,已分组数据可被查询或保存,以供稍后使用。
图19示出一种可视化剖析数据的方法1900。在附图标记1910,可获取剖析数据。在一个实例中,可以从当前正在执行的程序处实时获取剖析数据。或者,可以从诸如日志文件之类的历史源处获取剖析数据。在附图标记1920,通过例如默认或根据用户选择来获取一个或多个可视化。在附图标记1930,获取的可视化被应用于所获取的剖析数据上。在附图标记1940,可视化被同步为参照相同的数据片段,或换句话说,提供相同数据的不同视图。例如,基于时间线的数据可以根据时间被协调,而非基于时间线的数据可以被调整范围以参照基于时间线的数据所显示的时间段或由用户所标识的时间的子集。在附图标记1950,可以在利用公共的控件组的一组可视化上处理用户请求。作为示例,如果用户选择使用一个可视化或该组可视化的感兴趣的数据的特定部分作为一个控件,则该组可视化的剩余可视化可以被更新/同步。根据一个实施例,剖析数据可以被逻辑分组并且对信息的子集的选择可以对应于导航被从下层向上逻辑分组的数据流以及很多函数调用的经分组的数据的分层结构。
在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
此处使用的术语“组件”和“系统”及其各种形式(例如,组件、系统、子系统等)旨在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机两者都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
本描述和所附权利要求书中使用的连接词“或”旨在意味着包括性“或”而非互斥性“或”,除非另有指定或从上下文中清晰可见。例如,如果“‘A’采用‘X’”,“‘A’采用‘Y’”或“‘A’采用‘X’和‘Y’”两者,则在任何上述情况下都满足“‘A’采用‘X’或‘Y’”。
如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户的状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯置信网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护主题的自动化和/或推断的动作。
而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。
为了为所要求保护主题提供上下文,图20以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表)、基于微处理器或可编程消费或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
参考图20,示出了示例通用计算机2010或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子产品、机顶盒、游戏系统…)。计算机2010包括一个或多个处理器2020、存储器2030、系统总线2040、大容量存储2050、以及一个或多个接口组件2070。系统总线2040与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机2010可包括耦合到存储器2030的一个或多个处理器2020,该一个或多个处理器2020执行存储在存储器2030中的各种计算机可执行动作、指令和/或组件。
处理器2020可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器2020还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合DSP核的一个或多个微处理器、或任何其它这种配置。
计算机2010可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机2010来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机2010访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机2010访问的任何其他介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器2030和大容量存储2050是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器2030可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存)或是两者的某种组合。作为示例,包括诸如在启动期间在计算机2010内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器2020的处理等。
大容量存储2050包括相对于存储器2030用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储2050包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒等一个或多个设备。
存储器2030和大容量存储2050可包括或其中存储有操作系统2060、一个或多个应用2062、一个或多个程序模块2064和数据2066。操作系统2060用于控制和分配计算机2010的资源。应用2062包括系统和应用软件之一或两者,并且可利用操作系统2060对资源的管理通过存储在存储器2030和/或大容量存储2050中的程序模块2064和数据2066来执行一个或多个动作。因此,应用2062可根据由此提供的逻辑来将通用计算机2010变成专用机器。
所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,可视化系统100或其一部分可以是应用2062或形成应用2062的一部分,并且包括存储在存储器和/或大容量存储2050中的一个或多个模块2064和数据2066,这些模块和数据的功能可在由一个或多个处理器2020执行时可实现。
根据一个特定实施例,处理器2020可与片上系统(SOC)或在单个集成电路基座上包括或换言之集成硬件和软件的类似架构相对应。此处,处理器2020可包括至少与处理器2020和存储器2030相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更强大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,可视化系统100和/或相关联的功能可被嵌入到SOC体系结构中的硬件内。
计算机2010还包括通信地耦合到系统总线2040并便于与计算机2010的交互的一个或多个接口组件2070。作为示例,接口组件2070可以是端口(例如,串行、并行、PCMCIA、USB、火线)或接口卡(例如,声音、视频等)等等。在一个示例实现中,接口组件2070可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标的定点设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、相机、其他计算机……)来将命令和信息输入到计算机2010中。在另一示例实现中,接口组件2070可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其它计算机等提供输出。此外,接口组件2070可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其他计算设备(未示出)通信。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。
附录A
Claims (10)
1.一种可视化剖析数据的方法,包括:
在计算设备的显示上呈现程序剖析数据的多个相关可视化,所述多个可视化提供了所述剖析数据的不同类型的视图,当获取所述剖析数据时所述视图被更新。
2.如权利要求1所述的方法,其特征在于,还包括响应于指示时间序列的选择信号改变所述多个可视化中至少一个可视化的外观。
3.如权利要求1所述的方法,其特征在于,还包括视觉地指示关于所述多个可视化的一个或多个可视化的一个或多个条件的失败或满足的至少一个。
4.如权利要求1所述的方法,其特征在于,还包括呈现基于选择启动对实时剖析数据的记录和历史剖析数据的回放的一组控件。
5.如权利要求1所述的方法,其特征在于,还包括呈现所述剖析数据所涉及的正在执行的程序的图像。
6.一种系统,包括:
耦合到存储器的处理器,所述处理器被配置成执行以下存储在所述存储器中的计算机可执行组件:
第一组件,被配置为呈现根据时间协调的经逻辑分组的程序-剖析数据的一组可视化。
7.如权利要求6所述的系统,其特征在于,还包括第二组件,被配置成记录剖析数据流。
8.如权利要求7所述的系统,其特征在于,还包括第三组件,被配置成便利于所记录的剖析数据的回放。
9.如权利要求6所述的系统,其特征在于,该组可视化的至少一个视觉上指示满足性能目标的失败。
10.如权利要求6所述的系统,其特征在于,所述第一组件被配置为在从其获取所述剖析数据的程序的执行期间呈现该组可视化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/429,566 | 2012-03-26 | ||
US13/429,566 US20130249917A1 (en) | 2012-03-26 | 2012-03-26 | Profile data visualization |
PCT/US2013/029223 WO2013148087A1 (en) | 2012-03-26 | 2013-03-06 | Profile data visualization |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104205062A true CN104205062A (zh) | 2014-12-10 |
Family
ID=49211355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380016591.5A Pending CN104205062A (zh) | 2012-03-26 | 2013-03-06 | 剖析数据可视化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130249917A1 (zh) |
EP (1) | EP2831739A4 (zh) |
CN (1) | CN104205062A (zh) |
WO (1) | WO2013148087A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022624A (zh) * | 2015-01-12 | 2015-11-04 | 西安卡奔软件开发有限责任公司 | 可一次设置复合参数的条件设置装置 |
CN105788608A (zh) * | 2016-03-03 | 2016-07-20 | 渤海大学 | 基于神经网络的汉语声韵母可视化方法 |
WO2017063144A1 (zh) * | 2015-10-13 | 2017-04-20 | 华为技术有限公司 | 数据的可视化方法和装置 |
CN109074665A (zh) * | 2016-12-02 | 2018-12-21 | 阿文特公司 | 用于在基于医学成像的程序中导航到目标解剖对象的系统和方法 |
CN110543306A (zh) * | 2019-07-19 | 2019-12-06 | 石化盈科信息技术有限责任公司 | 交互式数据可视化方法及应用系统、存储介质 |
CN111817867A (zh) * | 2019-04-11 | 2020-10-23 | 普天信息技术有限公司 | 分布式环境下进行多日志协同分析的方法及系统 |
CN111861837A (zh) * | 2020-07-28 | 2020-10-30 | 安徽新华博信息技术股份有限公司 | 基于公共安全研判模型快速实现的方法 |
CN113711203A (zh) * | 2019-04-19 | 2021-11-26 | 微软技术许可有限责任公司 | 服务健康的方向相关性的视觉表示 |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183108B2 (en) * | 2012-03-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Logical grouping of profile data |
US10095659B2 (en) | 2012-08-03 | 2018-10-09 | Fluke Corporation | Handheld devices, systems, and methods for measuring parameters |
US9824470B2 (en) * | 2012-12-21 | 2017-11-21 | Business Objects Software Ltd. | Use of dynamic numeric axis to indicate and highlight data ranges |
US9152537B2 (en) * | 2013-02-08 | 2015-10-06 | Facebook, Inc. | Semantic stack trace |
US10496658B2 (en) * | 2013-03-14 | 2019-12-03 | Adobe Inc. | Method and system of visually depicting hierarchical data through selective colorization |
US10613965B2 (en) * | 2013-03-14 | 2020-04-07 | Adobe Inc. | Method and system of visually combining profiling data from instrumentation and sampling |
WO2014145153A2 (en) | 2013-03-15 | 2014-09-18 | Neeley John | Automatic recording and graphing of measurement data |
US20140330821A1 (en) * | 2013-05-06 | 2014-11-06 | Microsoft Corporation | Recommending context based actions for data visualizations |
US20150113460A1 (en) * | 2013-10-23 | 2015-04-23 | Wal-Mart Stores, Inc. | Data Analytics Animation System and Method |
US9766270B2 (en) | 2013-12-30 | 2017-09-19 | Fluke Corporation | Wireless test measurement |
IN2014MU00158A (zh) * | 2014-01-16 | 2015-08-28 | Tata Consultancy Services Ltd | |
JP6189232B2 (ja) * | 2014-03-04 | 2017-08-30 | 株式会社東芝 | プログラム情報生成システム、その方法、プログラム、およびプログラム情報表示システム |
US10445166B2 (en) | 2014-06-24 | 2019-10-15 | International Business Machines Corporation | System verification of interactive screenshots and log files between client systems and server systems within a network computing environment |
CN105243070B (zh) * | 2014-07-11 | 2020-02-14 | 华为技术有限公司 | 数据的可视化方法和装置 |
US9128729B1 (en) | 2014-09-08 | 2015-09-08 | Quanta Computer Inc. | System and method for automatically configuring bios performance profiles |
US9996955B2 (en) | 2014-09-23 | 2018-06-12 | Salesforce.Com, Inc | Analytics visualization |
CN111913875B (zh) * | 2014-10-24 | 2024-04-26 | 谷歌有限责任公司 | 用于基于软件执行跟踪自动加标签的方法和系统 |
US10147158B2 (en) * | 2014-12-13 | 2018-12-04 | Microsoft Technology Licensing, Llc | Frame invalidation control with causality attribution |
US9703670B2 (en) * | 2015-01-06 | 2017-07-11 | Microsoft Technology Licensing, Llc | Performance state machine control with aggregation insertion |
JP6760084B2 (ja) * | 2015-02-09 | 2020-09-23 | 日本電気株式会社 | 分析用情報表示システム、方法およびプログラム |
US10049473B2 (en) * | 2015-04-27 | 2018-08-14 | Splunk Inc | Systems and methods for providing for third party visualizations |
US10165037B2 (en) | 2015-05-20 | 2018-12-25 | Cbs Interactive Inc. | Method and apparatus for determining bandwidth required for a page feature |
US10185781B2 (en) * | 2015-05-20 | 2019-01-22 | Cbs Interactive Inc. | Method and apparatus for determining bandwidth required for a page feature |
US11068827B1 (en) * | 2015-06-22 | 2021-07-20 | Wells Fargo Bank, N.A. | Master performance indicator |
US10977428B2 (en) | 2015-06-29 | 2021-04-13 | Microsoft Technology Licensing, Llc | Content transformations |
US9612945B1 (en) * | 2015-11-23 | 2017-04-04 | Sap Se | Call count profiling for estimation of relative hotness of function call frequency |
EP3394747A1 (en) * | 2015-12-21 | 2018-10-31 | Telefonaktiebolaget LM Ericsson (publ) | Priority trainer for many core processing system |
US10977316B2 (en) * | 2016-10-31 | 2021-04-13 | Splunk Inc. | Pushing data visualizations to registered displays |
US10455188B2 (en) | 2016-11-18 | 2019-10-22 | Microsoft Technology Licensing, Llc | Correlating UI with CPU stacks for profiling sessions |
US10304225B2 (en) | 2016-12-30 | 2019-05-28 | Microsoft Technology Licensing, Llc | Chart-type agnostic scene graph for defining a chart |
US10395412B2 (en) | 2016-12-30 | 2019-08-27 | Microsoft Technology Licensing, Llc | Morphing chart animations in a browser |
US11086498B2 (en) | 2016-12-30 | 2021-08-10 | Microsoft Technology Licensing, Llc. | Server-side chart layout for interactive web application charts |
US10402486B2 (en) * | 2017-02-15 | 2019-09-03 | LAWPRCT, Inc. | Document conversion, annotation, and data capturing system |
US10332289B2 (en) * | 2017-03-15 | 2019-06-25 | Salesforce.Com, Inc. | Methods and systems for providing a visual feedback representation of performance metrics |
US10540258B2 (en) * | 2017-07-17 | 2020-01-21 | Sap Se | Providing additional stack trace information for time-based sampling in asynchronous execution environments |
US10275235B2 (en) | 2017-09-18 | 2019-04-30 | International Business Machines Corporation | Adaptable management of web application state in a micro-service architecture |
US10365905B1 (en) * | 2017-10-26 | 2019-07-30 | Facebook, Inc. | Systems and methods for evaluating application performance changes via comparative call graphs |
US10896297B1 (en) | 2017-12-13 | 2021-01-19 | Tableau Software, Inc. | Identifying intent in visual analytical conversations |
US11055489B2 (en) * | 2018-10-08 | 2021-07-06 | Tableau Software, Inc. | Determining levels of detail for data visualizations using natural language constructs |
US11537276B2 (en) | 2018-10-22 | 2022-12-27 | Tableau Software, Inc. | Generating data visualizations according to an object model of selected data sources |
US11314817B1 (en) | 2019-04-01 | 2022-04-26 | Tableau Software, LLC | Methods and systems for inferring intent and utilizing context for natural language expressions to modify data visualizations in a data visualization interface |
JP7311319B2 (ja) * | 2019-06-19 | 2023-07-19 | ファナック株式会社 | 時系列データ表示装置 |
US10628630B1 (en) * | 2019-08-14 | 2020-04-21 | Appvance Inc. | Method and apparatus for generating a state machine model of an application using models of GUI objects and scanning modes |
US11455339B1 (en) | 2019-09-06 | 2022-09-27 | Tableau Software, LLC | Incremental updates to natural language expressions in a data visualization user interface |
US10997217B1 (en) | 2019-11-10 | 2021-05-04 | Tableau Software, Inc. | Systems and methods for visualizing object models of database tables |
US11983094B2 (en) | 2019-12-05 | 2024-05-14 | Microsoft Technology Licensing, Llc | Software diagnostic context selection and use |
US11673064B2 (en) | 2021-09-28 | 2023-06-13 | Sony Interactive Entertainment Inc. | Vocal collision queue |
US20230281254A1 (en) * | 2022-03-04 | 2023-09-07 | Humane, Inc. | Structuring and presenting event data for use with wearable multimedia devices |
US11928161B2 (en) | 2022-03-04 | 2024-03-12 | Humane, Inc. | Structuring and presenting event data for use with wearable multimedia devices |
US11757923B1 (en) * | 2022-10-11 | 2023-09-12 | Second Sight Data Discovery, Inc. | Apparatus and method for intelligent processing of cyber security risk data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1094524A (zh) * | 1993-01-29 | 1994-11-02 | 国际商业机器公司 | 用图形显示并行处理计算机生成的跟踪数据的显示工具 |
US5819094A (en) * | 1996-03-26 | 1998-10-06 | Fujitsu Ltd. | Apparatus for log data collection and analysis |
US20080022843A1 (en) * | 2006-07-28 | 2008-01-31 | Apple Computer, Inc. | Execution difference identification tool |
CN101650651A (zh) * | 2009-09-17 | 2010-02-17 | 浙江大学 | 一种源代码级别程序结构的可视化方法 |
US20100079463A1 (en) * | 2008-09-30 | 2010-04-01 | Nintendo Of America Inc. | Method and apparatus for visualizing and interactively manipulating profile data |
US20100251128A1 (en) * | 2009-03-31 | 2010-09-30 | Matthew Cordasco | Visualization of website analytics |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6557167B1 (en) * | 1999-09-03 | 2003-04-29 | International Business Machines Corporation | Apparatus and method for analyzing performance of a computer program |
US7533371B1 (en) * | 2003-09-22 | 2009-05-12 | Microsoft Corporation | User interface for facilitating performance analysis for processing |
US20050132336A1 (en) * | 2003-12-16 | 2005-06-16 | Intel Corporation | Analyzing software performance data using hierarchical models of software structure |
US7730460B1 (en) * | 2004-06-18 | 2010-06-01 | Apple Inc. | Code execution visualization using software fingerprinting |
US7526930B2 (en) * | 2005-04-22 | 2009-05-05 | Schlumberger Technology Corporation | Method system and program storage device for synchronizing displays relative to a point in time |
US8286135B2 (en) * | 2006-10-17 | 2012-10-09 | Cray Inc. | Performance visualization including hierarchical display of performance data |
US8074207B1 (en) * | 2007-05-31 | 2011-12-06 | Adobe Systems Incorporated | Application profiling |
US8499240B2 (en) * | 2008-10-31 | 2013-07-30 | Sap Ag | Rule-based presentation of log messages on a graphic timeline |
US9047399B2 (en) * | 2010-02-26 | 2015-06-02 | Red Hat, Inc. | Generating visualization from running executable code |
US8959442B2 (en) * | 2010-06-11 | 2015-02-17 | Microsoft Corporation | Memory allocation visualization for unmanaged languages |
US8884966B2 (en) * | 2011-08-24 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Visualizing a scatter plot using real-time backward rewrite |
-
2012
- 2012-03-26 US US13/429,566 patent/US20130249917A1/en not_active Abandoned
-
2013
- 2013-03-06 EP EP13769891.6A patent/EP2831739A4/en not_active Withdrawn
- 2013-03-06 WO PCT/US2013/029223 patent/WO2013148087A1/en active Application Filing
- 2013-03-06 CN CN201380016591.5A patent/CN104205062A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1094524A (zh) * | 1993-01-29 | 1994-11-02 | 国际商业机器公司 | 用图形显示并行处理计算机生成的跟踪数据的显示工具 |
US5819094A (en) * | 1996-03-26 | 1998-10-06 | Fujitsu Ltd. | Apparatus for log data collection and analysis |
US20080022843A1 (en) * | 2006-07-28 | 2008-01-31 | Apple Computer, Inc. | Execution difference identification tool |
US20100079463A1 (en) * | 2008-09-30 | 2010-04-01 | Nintendo Of America Inc. | Method and apparatus for visualizing and interactively manipulating profile data |
US20100251128A1 (en) * | 2009-03-31 | 2010-09-30 | Matthew Cordasco | Visualization of website analytics |
CN101650651A (zh) * | 2009-09-17 | 2010-02-17 | 浙江大学 | 一种源代码级别程序结构的可视化方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022624A (zh) * | 2015-01-12 | 2015-11-04 | 西安卡奔软件开发有限责任公司 | 可一次设置复合参数的条件设置装置 |
WO2017063144A1 (zh) * | 2015-10-13 | 2017-04-20 | 华为技术有限公司 | 数据的可视化方法和装置 |
US10909734B2 (en) | 2015-10-13 | 2021-02-02 | Huawei Technologies Co., Ltd. | Data visualization method and apparatus |
CN105788608A (zh) * | 2016-03-03 | 2016-07-20 | 渤海大学 | 基于神经网络的汉语声韵母可视化方法 |
CN105788608B (zh) * | 2016-03-03 | 2019-03-26 | 渤海大学 | 基于神经网络的汉语声韵母可视化方法 |
CN109074665A (zh) * | 2016-12-02 | 2018-12-21 | 阿文特公司 | 用于在基于医学成像的程序中导航到目标解剖对象的系统和方法 |
CN109074665B (zh) * | 2016-12-02 | 2022-01-11 | 阿文特公司 | 用于经由医学成像系统导航到目标解剖对象的系统和方法 |
CN111817867A (zh) * | 2019-04-11 | 2020-10-23 | 普天信息技术有限公司 | 分布式环境下进行多日志协同分析的方法及系统 |
CN113711203A (zh) * | 2019-04-19 | 2021-11-26 | 微软技术许可有限责任公司 | 服务健康的方向相关性的视觉表示 |
CN110543306A (zh) * | 2019-07-19 | 2019-12-06 | 石化盈科信息技术有限责任公司 | 交互式数据可视化方法及应用系统、存储介质 |
CN111861837A (zh) * | 2020-07-28 | 2020-10-30 | 安徽新华博信息技术股份有限公司 | 基于公共安全研判模型快速实现的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013148087A1 (en) | 2013-10-03 |
EP2831739A1 (en) | 2015-02-04 |
EP2831739A4 (en) | 2016-01-13 |
US20130249917A1 (en) | 2013-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104205062A (zh) | 剖析数据可视化 | |
CN103279471B (zh) | 剖析图数据的逻辑分组 | |
US9177049B2 (en) | System and method for interactive visual representation of information content using assertions | |
Gotz et al. | Characterizing users’ visual analytic activity for insight provenance | |
Liu et al. | Storyflow: Tracking the evolution of stories | |
Greenberg et al. | Design patterns for wildlife‐related camera trap image analysis | |
Gotz et al. | Visual cluster analysis in support of clinical decision intelligence | |
US9348581B2 (en) | Systems, method and computer program products for tracking and viewing changes to information stored in a data structure | |
CN107111544A (zh) | 生产诊断中的历史控制流可视化 | |
CN103714114A (zh) | 自然语言度量条件警告编排 | |
CN110210227A (zh) | 风险检测方法、装置、设备和存储介质 | |
CN103714450A (zh) | 自然语言度量条件警告产生 | |
CN107077349A (zh) | 具有数据预览的作业创建 | |
US20130311242A1 (en) | Business Process Analytics | |
CN105229617A (zh) | 用于导航应用代码的图表 | |
CN114511353A (zh) | 数据分析方法和装置 | |
Li et al. | WeSeer: Visual analysis for better information cascade prediction of WeChat articles | |
CN107480281B (zh) | 一种异构文件系统之间的统一视图的构建方法 | |
Yoo et al. | LongLine: Visual analytics system for large-scale audit logs | |
Lieber et al. | Visual notations for viewing RDF constraints with UnSHACLed | |
US20080313175A1 (en) | Method and system for interaction-based expertise reporting | |
Waldner et al. | Graphical histories of information foraging | |
Asaduzzaman | Visualization and analysis of software clones | |
Rulff et al. | Urban Rhapsody: Large‐scale exploration of urban soundscapes | |
KR102358735B1 (ko) | 그래프 데이터베이스에서 데이터 연관관계 생성 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141210 |