CN105122257B - 用于动态显示跟踪器数据的转换函数插入 - Google Patents

用于动态显示跟踪器数据的转换函数插入 Download PDF

Info

Publication number
CN105122257B
CN105122257B CN201380075219.1A CN201380075219A CN105122257B CN 105122257 B CN105122257 B CN 105122257B CN 201380075219 A CN201380075219 A CN 201380075219A CN 105122257 B CN105122257 B CN 105122257B
Authority
CN
China
Prior art keywords
data
conversion
message
frame
node
Prior art date
Application number
CN201380075219.1A
Other languages
English (en)
Other versions
CN105122257A (zh
Inventor
R·S·克莱杰克
A·G·古纳雷斯
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to US13/757,631 priority Critical
Priority to US13/757,631 priority patent/US9256969B2/en
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Priority to PCT/US2013/046050 priority patent/WO2014120270A1/en
Publication of CN105122257A publication Critical patent/CN105122257A/zh
Application granted granted Critical
Publication of CN105122257B publication Critical patent/CN105122257B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Abstract

用于跟踪器的可视化系统可包括处理流水线,该处理流水线可生成跟踪数据、预处理该数据、以及可视化该数据。预处理步骤可包括处理用户定义的表达式或其他可执行代码的机制。该可执行代码可执行各种函数,包括数学、统计、与其他数据的聚集等。预处理器可执行恶意软件分析、测试功能性、随后实现该可执行代码。可向用户呈现编辑器或其他基于文本的用户界面组件以用于输入和编辑该可执行代码。该可执行代码可被保存并随后作为可选择转换被调用以与其他数据流一起使用。

Description

用于动态显示跟踪器数据的转换函数插入
[0001] 相关申请的交叉引用
[0002] 本申请要求于2013年2月1 日提交的题为“Transformation Function Insertion for Dynamically Displayed Tracer Data (用于动态显示跟踪器数据的转换函数插入)” 的美国专利申请序列号13/757,631的优先权和权益,该申请的整体内容通过援引被明确地 纳入于此。
[0003] 背景
[0004] 消息传递计算环境通过在执行期间使独立的处理元素(诸如线程或其他计算组 件)将消息从一个元素传递到另一元素来操作。在各组件间传递的消息可包含可由接收者 消费的数据和其他信息。
发明内容
[0005] 用于跟踪器(tracer)的可视化系统可包括处理流水线,该处理流水线可生成跟踪 数据、预处理该数据、以及可视化该数据。预处理步骤可包括处理用户定义的表达式或其他 可执行代码的机制。该可执行代码可执行各种函数,包括数学、统计、与其他数据的聚集等。 预处理器可执行恶意软件分析、测试功能性、随后实现该可执行代码。可向用户呈现编辑器 或其他基于文本的用户界面组件以用于输入和编辑该可执行代码。该可执行代码可被保存 并随后作为可选择转换被调用以与其他数据流一起使用。
[0006] 力导向图可担当针对跟踪器的用户控制的一部分。跟踪器可在监视正在执行的应 用的同时收集数据,随后该数据可被处理并显示在力导向图上。用户可以能够选择个体节 点、边、或其他元素,随后使该跟踪器改变可收集什么数据。该用户可以能够选择个体节点、 边或图上的元素的组,随后使用所选择的元素对跟踪器执行更新。该选择机制可包括点击 及拖动窗口以选择可能相关的节点,以及从图例或其他编组中选择。
[0007] 力导向图可使用一组回放控制以暂停、播放、反转、快进、慢进、或以其他方式控制 时间序列数据的显示来显示时间序列数据。该回放控制可在向其显示数据集以及可显示该 数据集的速度的实时或近实时应用中使用。在一个架构中,力导向图可使用渲染引擎来部 署,该渲染引擎接收数据并将该数据渲染到图中。回放控制器可根据来自回放控制的用户 输入向渲染引擎发送更新。
[0008] 可通过示出在消息传递计算环境内传递的消息来将该环境可视化。该消息可包含 由函数或其他计算元素消费的数据,并可被用于启动或产生各种计算元素。一个可视化可 以是力导向图,该力导向图的每个功能均作为节点,其中被传递的消息作为图的边。在一些 实施例中,边可通过将边显示得更宽或更窄、或通过改变所显示的边的颜色来显示消息的 数目、数据量、或其他度量。节点可用不同颜色、大小或形状示出以显示不同方面。一些实施 例可具有用于存储和回放随时间对图的改变的机制。
[0009] 力导向图可将消息传递系统的最近活动作为高亮(highlight)特征显示在更大的 图上。力导向图可显示表示过程和消息路由的节点和边的超集(superset),随后将最近活 动显示为更大的超集内的高亮元素。高亮元素可显示在一时间序列的最近时间元素期间传 递的消息或执行的计算。在一些实施例中,可通过使高亮的视觉元素随时间衰减来显示活 动的影响。
[0010] 提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一 步描述。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制 所要求保护主题的范围。
[0011] 附图简述 [0012] 在附图中:
[0013]图1是示出力导向图的实施例的图示。
[0014] 图2是示出使用图的数据收集和显示的环境的实施例的图示。
[0015] 图3是示出用于收集数据的方法的实施例的流程图。
[0016] 图4是示出用于可视化之前聚集数据的方法的实施例的流程图。
[0017] 图5是示出用于部署和更新图的方法的实施例的流程图示。
[0018] 图6是示出用于生成图上的对象的踪迹(trace)的方法的实施例的流程图示。
[0019] 图7是示出显示一时间序列的样本力导向图的实施例的图示。
[0020] 图8A、8B和8C是用力导向图不出选择机制的实施例的图不的序列。
[0021] 图9A、9B和9C是用力导向图示出第二选择机制的实施例的图示的序列。
[0022] 图10是用于通过交互式图来控制跟踪器的方法的实施例的流程图示。
[0023] 图11是示出用于可视化踪迹数据的网络环境的实施例的图示。
[0024] 图12是示出用于用转换来可视化踪迹数据的方法的实施例的图示。
[0025] 图13是示出具有转换编辑器的样本用户界面的实施例的图示。
[0026] 图14是示出具有转换的网络环境的实施例的图示。
[0027] 图15是示出用于使用数据浏览器来控制显示的方法的实施例的流程图。
[0028] 详细描述
[0029] 用于可视化消息传递计算环境的图
[0030] 消息传递计算环境可通过显示在计算元素之间传递的消息的图来可视化。所述图 可将计算元素示为节点,而消息为图的边。一种类型的这种可视化可以是力导向图。
[0031] 该可视化可将数据的不同特性(诸如消息的数目、数据量、消息的方向、或其他特 性)显示为线宽、颜色、或其他视觉元素。在力导向图的情况下,各元素之间的力可表示这种 数据特性。
[0032] 图的节点可表示计算元素。计算元素可以是可发送或接收消息的任何可执行代 码、设备、或其他元素。节点可以用不同大小、颜色、形状或其他特性来示出以示出所消耗的 计算时间量、调用频率、组中的成员资格、与其他元素的交互、或其他数据项。
[0033] 该可视化可使用数据集的序列来执行,其中每个数据集可随时间被收集。在这些 实施例中,当应用执行时,图可扩展、收缩、以及改变形状。这些实施例可以能够存储和回放 数据集的序列。在一些情况下,这种回放可被减慢或加速以示出执行期间的改变。
[0034]可视化系统可具有检测机制系统(instrumentation system),该检测系统收集执 行期间的消息信息,随后处理或格式化该信息以用于显示。显示系统可生成图并向用户显 示图。在一些情况下,图可以是交互式的,其中用户可以能够探询(probe)该图来获得附加 洞察。在一个示例中,用户可以能够点击节点来寻找关于该节点的细节,诸如节点名称、关 于该节点的性能度量、或其他信息。
[0035] 可视化系统可被用来监视和显示在单一设备内传递的消息,以及其中消息在设备 间传递的实施例。例如,一些函数式语言可在可在单一处理器上或跨单一设备内的若干处 理器执行的进程之间传递消息。在另一示例中,高性能计算系统可组合位于许多不同设备 上的处理器来执行大型应用。可通过显示例如从设备到设备、以及在每个个体设备中从一 个处理器到另一处理器传递的所有消息来可视化这种应用。
[0036] 用于具有高亮的时间序列数据的力导向图
[0037] 通过维持节点和边的超集,以及通过高亮图内表示最近活动的那些元素来显示最 近活动,力导向图可显示时间序列数据。节点和边的超集可通过捕捉可通过时间序列来定 义的每个节点和边并在时间序列的回放或显示期间维持该超集来创建。
[0038] 通过高亮表示所述活动的那些元素,同时以非高亮方式显示节点和边的超集中的 至少一些,最近活动可被覆盖在元素的超集上。在这种可视化的一种样式中,节点和边的超 集可按变灰淡化的方式呈现,而最近活跃的节点和边可按有颜色的方式呈现。
[0039] 通过使元素对于被激活之后的后续时间段在高亮上减弱来将最近活动示出为淡 出或溶解。这种视觉衰减可高亮活跃元素,同时保持视觉线索达一定数量的时间片,并且在 以下情况下可以是有用的:其中时间片足够短而使得单一时间片中的活动可能未被完全理 解。
[0040] 用力导向图来可视化时间序列数据
[0041] 时间序列数据的动态可视化可在力导向图中被渲染。时间序列数据可包括表示任 何给定时间处系统的状态的数据集。可视化可示出随时间前进的状态变化。
[0042] 可视化可具有一组控件,所述控件允许用户在数据集中向前或向后移动。所述控 件可允许用户控制数据的回放。在一些情况下,数据可在正常时间基础上呈现,其中回放可 对应于数据收集的速度。在其他情况下,回放可相对于数据被收集的周期性被加速或减慢。
[0043] 用于可视化系统的架构可具有可被绑定到数据源的可视化器。可视化器可显示力 导向图,包括渲染力的任何经动画化的运动。所述控件可配置数据浏览器,该数据浏览器可 选择要呈现的数据集,要呈现的数据集可通过数据绑定而被传输到可视化器。在一些情况 下,可视化器可收集用户输入,所述用户输入可以由数据浏览器在其上操作的远程设备处 理。
[0044] 力导向图作为跟踪器的输入机制
[0045] 跟踪器可使用力导向图作为输入机制。力导向图可允许用户选择并操纵可表示应 用的各种元素的图的节点和边。一旦被选择,用户可以能够向元素应用各种动作,比如使得 附加跟踪被应用于元素或被应用于相关元素。
[0046] 力导向图或其他可视化可将应用元素呈现在不同编组或呈现中,这可帮助用户看 到各元素内的关系。通过使用力导向图或其他可视化作为对跟踪器的输入,用户可以能够 容易地选择元素和相关元素,它们原本是难以选择的。
[0047] 图可包含可显示元素的组的图例。图例可包括用户可用以选择元素的子集的热点 或其他用户界面控件。
[0048] 用户界面可包括可使用所选择的元素作为输入的附加的选项菜单。该附加菜单可 包括可由提供所显示的数据的跟踪器采取的各种动作。配置文件可被更新并发送至跟踪器 以改变跟踪器行为。
[0049] 踪迹数据的转换定义
[0050] 通过应用预定义的或用户定义的转换,踪迹数据可被准备以用于显示。数据的可 视化可包括用户界面,通过该用户界面,用户可选择一个或多个预定义转换或输入可创建 新转换的可执行代码或表达式。
[0051] 用户输入的表达式可定义在准备可视化时可被应用到数据的改变。所述改变可执 行统计分析、应用算术函数、组合数据字段、合并外部数据或其他函数。该表达式可允许用 户创建解决在可创建可视化时不可预见的特定场景的转换。
[0052] 表达式可被插入到用于数据馈送的数据处理流水线中。在一些情况下,数据处理 流水线可以是可接收、处理和显示实时数据的实时流水线。
[0053] 贯穿本说明书和权利要求书,术语“剖析器”、“跟踪器”和“检测机制” (“instrumentation)”被可互换地使用。这些术语指代可在应用被执行时收集数据的任何 机制。在经典定义中,“检测机制”可指代可向其插入可执行代码并藉此改变该可执行代码 的存根(stub)、挂钩(hook)或其他数据收集机制,而“剖析器”或“跟踪器”可经典地指代不 可改变可执行代码的数据收集机制。使用这些术语及其派生词中的任一者都可蕴含或暗示 彼此。例如使用“跟踪器”的数据收集可使用“跟踪器”的经典意义中的非接触式数据收集以 及用其中可执行代码可被改变的“检测机制”的经典意义的数据收集来执行。相似地,通过 “检测机制”收集的数据可包括使用非接触式数据收集机制的数据收集。
[0054] 此外,通过“剖析”、“跟踪”和“检测机制”收集的数据可包括可收集的任何类型的 数据,包括诸如处理时间、吞吐量、性能计数器之类的与性能相关的数据等等。收集到的数 据可包括函数名称、所传递的参数、存储器对象名称和内容、所传递的消息、消息内容、注册 表设置、注册表内容、差错标志、中断或与正被跟踪的应用有关的任何其他参数或其他可收 集的数据。
[0055] 贯穿本说明书和权利要求书,术语“执行环境”可用于指代用于执行应用的任何类 型的支持软件。执行环境的一个示例是操作系统。在一些图示中,执行环境摂可被示为与操 作系统分开。这可能是为了示出为应用提供各支持函数的虚拟机,诸如过程虚拟机。在其他 实施例中,虚拟机可以是可包括其自己的内部操作系统并可模拟整个计算机系统的系统虚 拟机。
[0056] 贯穿本说明书和权利要求书,术语“执行环境”包括操作系统和可具有或可不具有 可容易标识的“虚拟机”或其他支持软件的其他系统。
[0057] 贯穿本说明书,在对附图的整个描述中,相同的附图标记表示相同的元素。
[0058] 当元素被称为被“相连接”或“相耦合”时,这些元素可被直接连接或耦合在一起, 或者也可存在一个或多个中间元素。相反,当元素被称为被“直接连接”或“直接耦合”时,不 存在中间元素。
[0059] 本主题可被体现为设备、系统、方法、和/或计算机程序产品。因此,本主题的部分 或全部可以用硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此 夕卜,本主题可以采用计算机可使用或计算机可读存储介质上的计算机程序产品的形式,介 质中收录了供指令执行系统使用或结合指令执行系统一起使用的计算机可使用或计算机 可读的程序代码。在本文档的上下文中,计算机可使用或计算机可读介质可以是可包含、储 存、通信、传播、或传输程序以供指令执行系统、装置或设备使用或结合指令执行系统、装置 或设备一起使用的任何介质。
[0060] 计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、 或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可包括计算机 存储介质和通信介质。
[0061] 计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其 它数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计 算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功 能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所 需信息且可以由指令执行系统访问的任何其他介质。注意,计算机可使用或计算机可读介 质可以是其上打印有程序的纸张或另一合适的介质,因为程序可以经由例如对纸张或其他 介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并 随后存储在计算机存储器中。
[0062] 当本主题在计算机可执行指令的一般上下文中具体化时,该实施例可包括由一个 或多个系统、计算机、或其他设备执行的程序模块。一般而言,程序模块包括执行特定任务 或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可 在各个实施例中按需进行组合或分布。
[0063] 图1是示出示例力导向图的实施例100的图示。实施例100是力导向图以及各种控 件的示例,该力导线图可在与彼此的消息传递关系中显示对象,该各种控件可被用于查看 具有数据集序列的该图。
[0064] 实施例100的力导向图可解说在消息传递环境内传递的消息。作为这种环境的示 例,独立计算元素可处理应用的诸部分。在处理期间,每个计算元素可向另一计算元素传递 包含数据、指令或其他元素的消息。在这种环境中,力导向图可被用来可视化各计算元素以 及所述元素之间的活动。在许多情况下,力导向图可被用来标识执行期间的瓶颈或其他异 常。
[0065] 实施例100的力导向图可示出应用执行期间的一个时间段。在这些实施例中,应用 的执行可随时间被跟踪器且力导向图可示出应用如何行动。实施例100的力导向图可用新 收集的数据被周期性地更新,这可视觉地示出该应用的各操作。
[0066] 实施例100的力导向图可示出应用的各操作。在一些实施例中,力导向图可示出各 离散时间段处的设备或应用的系统状态。示出系统状态的图的一个示例可包括表示存储器 对象、函数、输入/输出设备、存储器存储设备、或其他硬件或软件对象的状态的节点。在一 些实施例中,力导向图可示出两个时间段之间可能发生的活动。这种图的示例可包括函数 或进程以及在各进程间传递的消息。
[0067] 力导向图可示出由各条边连接的节点102、104、106和108。边112连接节点102和 104。边114连接节点102和106,而边116连接节点102和108且边118连接节点106和104。还示 出了附加节点和边。
[0068]可通过施加用边连接两个节点的引力,并同时向各节点一般性地施加斥力来计算 力导向图。在许多实施例中,力导向图可以可交互方式来显示,以使得用户可以能够通过点 击和拖动对象或通过某种其他机制来扰动该图。在引入扰动时,交互式图可显示各节点和 边改变位置。
[0069] 实施例100的力导向图可显示附加数据元素。例如,各节点的相对大小、形状和颜 色可被配置成指示节点的不同性质。在另一示例中,边可使用粗细度、颜色和其他视觉元素 来显示性质。
[0070] 当力导向图显示应用的执行时,节点可表示计算元素。计算元素可以是进程、线 程、处理器、设备、或可向其他元素传递消息的其他元素。在这种图中,边可表示在计算元素 之间传递的消息。
[0071] 表示计算元素的节点可被修改以反映附加数据。例如,节点的颜色或形状可被修 改以显示计算元素的编组。在实施例100的示例中,图例126示出应用到节点的不同颜色或 图案以及所述图案的含义。表示来自库A 120的计算元素的节点可包括节点102和108。表示 来自库B 122的计算元素的节点可包括节点104和106。节点110可表示核心进程124。
[0072] 编组可反映各对象的不同共享性质。例如,节点可按照库、代码模块、或其他组来 编组,且这种编组可帮助开发者理解程序流。在另一示例中,节点可按存储器消耗来编组, 其中表示消耗大量数据的计算元素的那些节点被编组在一起,或者其中引用特定存储器对 象组的计算元素被编组在一起。在另一示例中,在特定进程调度器上操作的进程或函数可 被显示为组。在又一示例中,可能与一存储器域有关的节点可被编组。
[0073] 在一些实施例中,图例可作为图的一部分来显示。图例可具有颜色、形状、或其他 视觉元素和相应标签。在一些实施例中,图例可具有选择机制,藉由该选择机制,用户可以 能够使用下拉菜单或其他选择工具来选择一编组。在一些此类实施例中,用户可以能够选 择一个视觉效果以对应于一个编组,而另一视觉效果可对应于另一编组。例如,图例可被用 来按照要通过表示每个域的形状示出的存储器域来配置编组,而与特定服务有关的节点可 按照颜色编组。
[0074] 图例126可具有用于选择要被显示的编组的选择工具。切换按钮136可打开下拉列 表,该下拉列表可包含若干选项。在实施例100的情况中,选项可包括按照处理器138、存储 器域140、调度器142、以及服务144的编组。服务144选择当前被选择,如由星星所指示。当用 户选择一不同编组时,可通过改变颜色、形状或其他视觉元素来向各节点应用该编组。
[0075] 各节点的大小可反映计算元素的不同方面。例如,大小可表示特定元素执行的计 算量、该元素被调用的次数、该元素处理的数据量、或其他因素。在一些情况下,特定颜色可 被应用到接收来自外部源的输入数据的元素,而一不同颜色可被应用到传送输出数据的元 素。
[0076] 类似地,可修改边来显示消息的各方面。例如,消息可被聚集来显示沿特定路径的 消息数目、消息的频率、消息的数据有效载荷、以及消息的方向性以及其他特性。对应于消 息的边可使用不同的粗细度、颜色、或其他视觉元素来修改以示出所聚集的参数中的一个 或多个参数。
[0077] 应用的操作可产生可随时间传递的许多消息。这种与时间有关的数据可使用数据 集的时间序列来显示,其中每个数据集可反映在一时间段该应用的状态或者作为在一时间 间隔期间传递的消息的聚集。
[0078] 在一些实施例中,跟踪系统可从活跃应用收集消息传递信息并将所收集的数据存 储在数据库中。聚集器可分析该数据库来概括针对个体时间间隔的消息传递活动。在一些 情况下,这种概括可由跟踪系统执行而不将消息传递数据存储在独立的数据库中。
[0079] 可通过更新力导向图内的数据来在该力导向图中显示经聚集的数据。在力导向图 的许多可视化中,可更新数据集,从而使得力导向图用更新后的数据重新定位自身。
[0080] 力导向图可实时反映应用的操作。在这种实施例中,跟踪器系统可收集来自计算 环境的消息传递数据并聚集该数据以供呈现。可按一周期间隔(诸如每秒)更新该数据,随 后将该数据传送到显示力导向图的系统。力导向图可被更新且随着每次更新改变,从而允 许用户实时或近实时地可视化应用的操作。
[0081] 当在这种实施例中数据集可被收集并存储时,控制面板用户界面可允许用户浏览 和查看各数据集。例如,反转按钮128可使得按照相反的次序来显示较旧的数据集。播放按 钮130和暂停按钮132可开始和停止更新力导向图。快进按钮134可使得回放按照比正常速 度更快的速度进行。
[0082] 图2是显示可收集并在图中显示消息传递数据的计算环境的实施例200的图示。实 施例200示出可呈递实施例100以及其他实施例中描述的操作的硬件组件。
[0083] 图2的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组件、 或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组件。 在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在单 个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例都 可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
[0084] 实施例200示出了可具有硬件平台204和各软件组件的分析器设备202。示出的分 析器设备202表示常规的计算设备,但是其它实施例可具有不同配置、架构、或组件。
[0085] 在许多实施例中,分析器设备202可以是服务器计算机。在一些实施例中,分析器 设备202仍然还可以是台式计算机、膝上型计算机、上网本计算机、平板或平板式计算机、无 线手机、蜂窝电话、游戏控制台或任何其他类型的计算设备。在一些情况下,分析器设备202 可被部署在计算群集、云计算环境、或其他硬件平台上。
[0086] 硬件平台204可以包括处理器208、随机存取存储器210、以及非易失性存储212。硬 件平台204还可包括用户接口 214和网络接口 216。
[0087] 随机存取存储器210可以是包含可由处理器208快速访问的数据对象和可执行代 码的存储。在许多实施例中,随机存取存储器210可具有将存储器210连接到处理器208的高 速总线。
[0088] 非易失性存储212可以是在关闭分析器设备202之后持久保持的存储。非易失性存 储212可以是任何类型的存储设备,包括硬盘、固态存储器设备、磁带盒、光学存储、或其他 类型的存储。非易失性存储212可以是只读、或能够读/写。在一些实施例中,非易失性存储 212可以是基于云的网络存储或可通过网络连接访问的其他存储。
[0089] 用户接口 214可以是能够显示输出并且从用户接收输入的任何类型的硬件。在许 多情况下,输出显示可以是图形显示监视器,但是输出设备可包括灯光和其他视觉输出、音 频输出、动力致动器输出、以及其他输出设备。常规输入设备可包括键盘和定点设备,诸如 鼠标、指示笔、跟踪球、或其他定点设备。其他输入设备可包括各种传感器,包括生物测定输 入设备、音频和视频输入设备、以及其他传感器。
[0090] 网络接口 216可以是到另一计算机的任何类型的连接。在许多实施例中,网络接口 216可以是有线以太网连接。其他实施例可包括基于各种通信协议的有线或无线连接。
[0091] 软件组件206可包括操作系统218,各种应用和服务可在操作系统218上操作。操作 系统可在执行例程和硬件组件204之间提供抽象层,并且可包括与各个硬件组件直接通信 的各种例程和功能。
[0092] 实施例200中所示的各种设备的每一个可具有硬件平台。相应硬件平台可类似于 硬件平台204。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制 台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
[0093] 分析器设备202可包含操作系统218,该操作系统可支持各种其他软件组件。所述 组件可包括分析器220,该分析器可为可视化准备数据。分析器220可使用提取器222取得在 应用运行时收集的数据并且使用聚集器224聚集该数据来创建可由可视化器226可视化的 数据。
[0094] 收集器系统230可在硬件平台232上操作且具有收集器234,该收集器可收集在应 用执行时收集的踪迹数据并将该数据存储在数据库236中。这些数据随后可由分析器220处 理。
[0095] 客户端设备238可具有硬件平台240,浏览器242可在该硬件平台中执行。浏览器 242可显示可由可视化器226生成的图244。
[0096] 实施例200的架构示出了其中分析器202可为可视化器226准备数据以显示可在浏 览器242中渲染的图244的系统。在这种架构中,可在持续进行的基础上收集消息传递数据, 随后可由分析器220执行独立的处理步骤。这种架构可允许执行对原始数据的多次分析。
[0097] 例如,当原始数据在分析之前被存储时,数据集的时间序列可被配置成具有不同 时段。例如,可创建针对长时间段的时间序列,其示出可在长时间段期间发生的改变。同时, 可针对非常小的时间段创建详细时间序列。较长的时间段可帮助用户理解在应用中发生的 长期活动,而详细的时间序列可显示高得多的细节层次以例如用于调试。
[0098] 另一实施例可将收集器234和分析器220的操作中的一些包括在单一组件中。在这 种实施例中,数据可被分析、聚集、并准备以供在单一软件组件中查看。这种组件可被集成 到跟踪器中,在一些情况下该跟踪器与被测试的应用在同一设备上运行。一些其他架构可 执行类似操作但被不同地配置。
[0099] 计算环境246的示例示出了可与高性能计算环境或其中消息传递可被部署的其他 环境交互的多个设备。每个设备248、256、264和272可具有相应的硬件平台250、258、266和 274。应用252、260、268和276可与相应硬件平台上的相应跟踪器254、262、270和278—起执 行。
[0100] 计算环境246的示例可被部署在群集环境、分散计算环境、或某种其他方式中,以 使得各设备可彼此通信。应用可包含可被配置成向其他设备传递消息的相同或不同的可执 行代码以便执行比在单一设备上所执行的更大的工作负载。
[0101] 计算环境的另一示例可以是应用设备280,该应用设备280可具有可包含一个或多 个处理器的硬件平台282。在每个处理器上,多个进程可执行且在各进程之间传递消息。在 设备280的示例中,四个处理器284、288、292和296被示出为正在执行进程286、290、294和 298 〇
[0102] 这种系统的一个示例可部署函数式语言(诸如Erlang),藉由该语言,单一应用可 使用许多个体进程、线程或其他计算元素来执行。各元素可通过在设备280内传递消息来彼 此通信。在一些应用中,数千、数万、或甚至数百万进程和消息可在执行期间构成应用。
[0103] 图3是示出用于监视数据的方法的实施例300的流程图。实施例300示出了跟踪器 的操作,该跟踪器可收集消息传递数据并将数据存储在数据库中以供稍后分析。实施例300 的操作可反映跟踪器254的操作,例如在实施例200中。
[0104] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0105] 实施例300可示出藉此所传递的每个消息可被分析以收集各种数据的方法。实施 例300的架构示出了可监视应用的一个例程,且当消息被标识时,数据收集器实例可被部 署。数据收集器实例可收集各种数据并存储该数据。
[0106] 应用可在框302中开始且监视可在框304中开始。当消息在框306中被标识时,数据 收集器实例312可被部署。监视可在框308中继续,直到另一消息被标识为止,使得该过程返 回到框306并启动另一数据收集器实例312。当在框308中没有标识更多消息时,该过程可在 框310中结束。
[0107] 数据收集器实例312可反映可对单一消息操作的进程或函数的操作。根据该消息, 发送者和接收者可在框314中被标识。在该消息有效载荷中传送的数据可在框316中被收 集。
[0108] 关于发送者的信息可在框318中被收集,且关于接收者的信息可在框320中被收 集。这种信息可包括可执行多少处理、处理的性质、或其他信息。一旦已收集了所有信息,则 可在框322中存储该消息数据。
[0109] 图4是示出用于分析并聚集数据的方法的实施例400的流程图。实施例400示出了 分析器的操作,该分析器分析并聚集在实施例300中收集的数据。实施例400的操作可反映 分析器220的操作,例如在实施例200中。
[0110] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0111] 实施例400示出了在可视化之前可如何分析消息传递数据的示例。在一些实施例 中,实施例400的操作可与数据监视方法的操作内联地执行。一些这样的实施例可在跟踪器 内应用聚集方法400来创建可尽快地准备好以供显示的数据,以便允许应用的实时或近实 时的可视化。
[0112] 可在框402中确定数据集的周期性。周期性可定义时间序列的时间间隔。为了监视 应用,时间序列的周期性可以是小于1微秒、在亚秒范围内、在几秒内、或更长的值。取决于 该应用,一些实例可具有数十秒、几分钟、数十分钟、数小时、数天、数周或更长的时间段。
[0113] 开始时间段可在框404中被选择。在该时间段内传递的消息可在框406中被标识。 在一些情况下,所选择的消息可具有在计算元素间传递的多个消息,所述多个消息可按照 消息路径在框408中排序。
[0114] 对于框410中的每个消息路径,可在框412中对所传递的消息做出概括。该概括可 包括消息的数目、那些消息的方向、所传递的数据量、频率、或其他统计数据。在一些情况 下,概括可以是非线性概括。例如,对数、平方、立方或其他函数可被用来生成经聚集的概 括。在许多数据收集场景中,一些对象可被访问一次、两次或数次,而其他对象可被访问数 千或甚至数百万次。为了在图内呈现这种数据比较,可使用数据的非线性缩放(scaling)。
[0115] 每个节点可在框414中被标识。对于框416中的每个节点,在框418中可概括节点活 动。该概括可包括该计算元素所执行的计算量、传递至该元素或从该元素传递的输入或输 出数据、所执行的计算的类型、以及与计算有关的统计数据,诸如繁忙时间、等待、执行垃圾 收集、堆大小、存储器调用、或其他信息。
[0116] 在分析针对该时间段的所有消息数据之后,可在框420中将该消息数据存储为数 据集。如果在框422中要分析另一时间段,则可在框424中递增该时间段且该过程可返回至 框404。当在框422中没有更多时间段要被分析时,该过程可在框426中结束。
[0117] 图5是示出用于部署和更新图的方法的实施例500的流程图示。实施例500示出了 实施例400中聚集的数据的可视化器的操作。实施例500的操作可反映可视化器226的操作, 例如在实施例200中。
[0118] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0119] 实施例500示出了可被执行以显示图的两个独立的活动。基线图可在框502中被创 建并显示并且可在持续进行的基础上在框504中添加高亮。
[0120] 框502的基线图可显示包含来自大型数据库的所有节点和边的图。在许多实例中, 这种图可表示应用的长期操作并可对于理解该应用而言有用。
[0121] 数据库可在框506中被选择以可视化。所有时间段可在框508中被分析以在框510 中标识所有节点且在框512中标识所有消息路径。在一些实施例中,概括统计数据可分别在 框510和512中在所有节点和边上生成。相应的图可在框514中被生成。
[0122] 在框514中生成的基线图可以是示出来自许多时间段的概括统计数据的静态图。 在许多实施例中,基线图可担当用于其他图示的框架。所有节点和所述消息路径的图可在 516被显示。
[0123] 例如,在框504中高亮活动的操作可标识从一特定时间段对该图的改变且将那些 改变覆盖在基线图上。在一个这样的示例中,基线图可包含所有计算元素以及可在应用的 寿命期间被传递的消息的表示。为了看到最近的操作,当前时间段中的操作可被标识且用 视觉高亮来显示,其中不是在该时间段中实施的其他计算元素和消息可不带高亮地被显 示。在这样的示例中,所有节点和边可按照变灰淡出(greyed-out)的方式被显示,其中当前 正在执行的节点和消息用鲜亮的颜色示出。
[0124] 在这种显示中,基线图可提供视觉上下文,当前改变可在该视觉上下文上显示。
[0125] 在框504中高亮活动的操作可包括在框518中接收选择时间段的用户输入。针对所 选择的时间段的数据集可在框520中被检索。
[0126] 所选择的时间段内的节点和边可在框522中被标识且在框524中被显示为被高亮。 该时间段内的未改变的那些节点和边可在框526中被标识且在框528中被显示为不被高亮。
[0127] 在框530中,判断是否为另一时间段。
[0128] 在许多情况下,用户可选择当前时间段来显示。这种选择可实时或近实时地更新 图。当一实施例包括各种导航工具(诸如实施例100的控制按钮)时,用户可以能够浏览、滚 动、或使用某种其他机制来标识要显示的数据集。
[0129] 当在应用执行时的时间段上更新可视化时,一些实施例可仅显示在时间序列的上 一采样时间段中已改变的那些元素。在这样的实施例中,力导向图或其他可视化的形状可 快速改变,特别是当该时间段非常短时。
[0130] —些此类实施例可随着多次更新衰减并移除元素。在这种实施例中,每个节点或 边可被显示达预定义数目的时间段,随后被从该图移除。当该节点变得更旧且没有被使用 时,在一些此类实施例中,该节点可按照变灰淡出的方式被显示。
[0131] 图6是示出用于生成图内的对象的踪迹的方法的实施例600的流程图示。实施例 600示出了与实施例500的操作类似的可对基线图做出的改变的另一版本。在一些情况下, 实施例600的操作可被修改以在不使用基线图的情况下更新图。
[0132] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0133] 实施例600的操作可示出藉此可在图(诸如力导向图)内示出对象及其影响的一种 方法。在定义对象之后,源于该对象的消息的一个、两个、或更多生成可被高亮以创建对基 线图的更新。该更新可作为高亮的节点和边被显示在基线图上以示出所选择的对象的影 响。
[0134] 基线图可在框602中被创建和显示。框602的操作的示例可在实施例500的框502中 找到。
[0135] 对跟踪对象的选择可在框604中被接收。跟踪对象可以是任何事件、存储器对象、 条件、函数、或用户可能希望检查的其他参数。用户可以能够定义要跟踪的存储器对象,例 如,当该存储器对象被改变或被设置成特定值时。一旦满足这一条件,则可示出该条件的影 响。
[0136] 在定义跟踪对象之后,在框606,可在消息传递数据库中搜索该跟踪对象的实例。 在一些情况下,该条件的多个实例可被标识。当存在多个实例时,可针对每个实例生成数据 集的时间序列且用户可以能够在各实例间选择以查看时间序列数据集。
[0137] 对于框608中的每个实例,该序列的开始点可在框610被标识。该开始点可以是该 条件源起的开始时间或时间段。
[0138] 引用该跟踪对象的任何消息可在框612中被标识并被添加到踪迹列表。在所选择 的对象与计算元素交互且该计算元素向另一计算元素传递消息时,消息可引用跟踪对象。 例如,跟踪对象可以是可由第一计算元素处理的输入事件,该第一计算元素可向两个其他 计算元素发送消息。这些消息可在框612中被添加到踪迹列表。
[0139] 框612的操作可标识可由跟踪对象或条件触发的原始消息集。对于框614中的踪迹 列表中的每个消息,下游消息可在框616中被标识且被添加到踪迹列表。下游消息可以是可 能已经由在框612中标识的原始消息触发的消息。如果在框618中期望消息的附加生成,则 该过程可返回至框614以添加附加消息。
[0140] 当在框618中可标识了消息的所有期望生成时,消息的所有生成的时间序列可在 框620中被创建。该时间序列可包括表示响应于该踪迹条件可从计算元素传递到计算元素 的消息的个体生成的独立的数据集。
[0141] 一实例可在框622中被选择,且消息可在框624中被显示为高亮消息。在许多情况 下,高亮消息可被显示在可在框602中创建并显示的基线图的框架上。
[0142] 图7是示出被显示为力导向图的数据集的时间序列的实施例700的图示。实施例 700示出时间A 702、时间B 704、时间C 706、以及时间D 708。实施例700是可随时间增长和 衰减的力导向图的简化示例。
[0143] 实施例700示出了可被创建并且可随每个后续时步增长和衰减的简单力导向图。
[0144] 在初始时步处,时间A 702、节点710、712和714被示出。在第二时步处,时间B 704、 节点716可被添加。
[0145] 在第三时步中,时间C 706、节点718被添加而节点712可被移除或按变灰淡出模式 显示。在第四时步中,时间D 708、节点720被添加而节点710和712可被移除或按变灰淡出模 式显不。
[0146] 实施例700示出了应用随时间的踪迹的进展。在每个时间段中,计算元素可由节点 表示,且在计算元素之间传递的消息可由图中的边来表示。初始地,在时间A 702中存在三 个计算元素且两个消息路径被运用。随着时间前进,附加的计算元素被使用且附加的消息 路径被运用。
[0147] 在时间C 706,所述节点和消息路径之一可能不再被使用。在这种情况下,一些实 施例可保留节点712的表示作为变灰淡化的版本。其他实施例可在节点712未被运用时移除 节点712。
[0148] —些实施例可随时间衰减该表示。在这种实施例中,每个节点可被示出达若干时 间段,即使在该节点在后续时间段中未被运用时。该节点可在被初始显示时用全色彩强度 来示出,随后该节点可在每个随后的时间段用较少强度来示出,直到该节点可被从该图移 除的时刻为止。这种实施例可保留节点可见达若干个时间段,以使得用户可可视化该节点, 但是可在该节点未被运用时移除该节点。
[0149] 在一示例中,在经动画化的表示中,节点可用全强度被显示达两个、三个、或更多 时间段。在初始显示之后,该节点可用逐渐减小的强度来示出达另15个时间段,之后该节点 可被从该图移除。在一些实施例中,针对衰减和针对初始表示的时间段可以是能够由用户 调整的。
[0150] 图8A、8B和8C是在用户界面中示出力导向图的示例实施例802、804和806的图示。 实施例802、804和806示出了交互的序列,所述交互可用用户输入来执行以选择一组图像元 素,随后对所选择的元素执行动作。元素802、804和806中的每个元素包括力导向图和图例 808 〇
[0151] 实施例802、804和806可示出用于从力导向图中选择多个元素的一种机制。这种机 制可以是使用矩形窗口的区域选择。其他实施例可准许用户通过其他选择机制来选择元素 组,所述其他选择机制诸如是套索工具、在连续元素上点击、或其他机制。
[0152] 实施例802、804和806的节点被共同标记。力导向图由节点810、812、814、816、818 和820构成。
[0153] 实施例802可表示在用户界面中显示的力导向图。实施例804可示出具有窗口选择 的实施例802的力导向图。该窗口选择由点822和824定义以定义选择框826。
[0154] 选择框826可由用户通过定义点822和824来创建。用于创建点822和824的一种机 制可以是在力导向图的所显示区域内点击和拖拽指示笔、光标、或其他指点工具。
[0155] 选择框826可捕捉节点812和节点组814,其可示出一个使用场景。具体而言,力导 向图或其他可视化可按照在没有可视化的情况下可能没有那么明显的方式来示出元素的 关系和组。用该可视化执行的选择机制可允许用户快速且简单地选择相关对象,特别是在 通过其他机制该关系可能并不明显时。
[0156] 例如,节点812可表示库中的一个函数而节点814可表示第二库中的一组函数。当 初始开始时,编程者或许能够或者或许不能够确定这两个函数集是相关的。在运行跟踪器 并在力导向图802中可视化该关系之后,编程者可以能够标识所述关系。
[0157] 在选择节点812和节点组814之后,用户可执行附加操作,如在实施例806中所示出 的。
[0158] 在实施例806中,所选择的项812和814可被示出为被高亮的,而该力导向图的剩余 部分可被示出为未被高亮的。一些实施例可使用透明度、诸如变灰淡出颜色等颜色方案、或 其他视觉提示来显示非高亮元素。一些实施例可使用更明亮或更鲜亮的颜色、不同的调色 板、粗细度或其他视觉提示来显示高亮的元素。
[0159] 一旦被选择,则所述项可向所选择的组应用某种活动或改变。这种改变可从用户 界面组件828选择,该用户界面组件可具有各种选项830和832。
[0160] 在一些实施例中,所选择的活动可使得跟踪器改变数据被收集的方式。在这种实 施例中,力导向图可以是用于控制或管理跟踪器的用户界面组件。这种改变的一个示例可 以是增加所选择的元素的跟踪的细节。这种改变可增加后续时间片的跟踪数据。在另一示 例中,可指示跟踪器从未来数据集中移除所选择的元素。在这种改变中,跟踪器可减少在未 来时间片中收集的数据量。
[0161] 在一些实施例中,所选择的活动可使得预处理器改变踪迹数据被处理或在用户界 面上呈现的方式。一个示例可以是针对所选择的元素显示累积数据或者视觉上高亮可从所 选择的元素流动的对象。这种选择可以不使得跟踪器改变所收集的数据但是可以使得预处 理器或可视化器改变数据被示出的方式。
[0162] 图9A、9B和9C是在用户界面中示出力导向图的示例实施例902、904和906的图示。 实施例902、904和906示出了交互的序列,所述交互可用用户输入来执行以选择一组图像元 素,随后对所选择的元素执行动作。元素902、904和906中的每个元素包括力导向图和图例 908 〇
[0163] 实施例902、904和906可示出用于从力导向图中选择多个元素的一种机制。这种机 制可使用图例标签来选择元素的组的成员。
[0164] 实施例902、904和906的节点被共同标记。力导向图由节点910、912、914、916、918 和920构成。
[0165] 实施例902可表示在用户界面中显示的力导向图。实施例904可示出具有从图例 908做出的选择的实施例902的力导向图。在图例908内的选择922可使得在组B中具有成员 资格的所有对象被选择并尚壳。
[0166] 实施例904将节点910和920示出为组B的所选成员,而剩余元素可被示出为未被高 壳。节点910和920的关系也被不出为被尚壳,而剩余关系或边可被不出为未被尚壳。
[0167] 一旦与选择922相关联的元素被选择,则用户界面组件924可被呈现。用户可以能 够在选项926和928之间选择以应用对跟踪器的改变或对数据如何被预处理和显示的改变, 其方式与用户界面组件828类似。当做出选择时,启动按钮930可被用来使该改变被实现。
[0168] 图10是用于通过与图的用户交互来控制跟踪器的方法的实施例1000的流程图示 意。实施例1000示出了可与实施例802、804和806以及实施例902、904和906的用户界面示例 一起执行的简化方法。
[0169] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0170] 在框1002中可接收初始数据集,且在框1004中可显示图。如果在框1006中没有用 户选择,则在框1008可接收新数据集且该过程可返回至框1004以示出更新后的图。
[0171] 框1004到1008的循环可示出针对时间序列数据的用户界面显示的正常操作。该图 可随着时间序列内的数据集的序列而持续更新。
[0172] 在框1006,用户可选择该图的一个或多个元素。在一些实施例中,在框1010中可暂 停更新。更新在其中该图可能快速改变且在图改变时用户或许不能选择期望元素集合的情 况下被暂停。
[0173] 一旦元素可被选择,则在框1012中可选择对那些项要执行的改变。在框1014中所 述改变可被传送至跟踪器,且该过程可返回至框1008,在该处可接收新数据集。
[0174] 图11是示出计算环境的实施例1100的图示,该计算环境可收集并在图中显示消息 传递数据,随后使用该图来控制如何收集那些数据。实施例Iioo示出可呈递实施例1000以 及其他实施例中描述的操作的硬件组件。
[0175] 图11的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组 件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组 件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在 单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例 都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
[0176] 实施例1100示出网络环境,其中踪迹数据的可视化可被用来控制跟踪器操作。可 视化设备1102可显示图并提供用户界面,而控制器设备1104可控制要被显示的数据集,以 及管理跟踪器的操作。控制器设备1104可从数据储存库1106检索数据。跟踪器设备1108在 运行应用1138时可收集踪迹数据。所有各设备可与网络1110连接。
[0177] 可视化器设备1102可包括在硬件平台1112上,浏览器1114可在该硬件平台上执 行。可视化器1116可以是在浏览器1114中运行的可在用户界面1118内生成图的代码。
[0178] 控制器设备1104可作为后端服务器操作,该后端服务器执行支持可视化器设备 1102的操作的若干服务。
[0179] 实施例1100的示例示出了其中可视化器1116可驻留于客户端设备上、而其他服务 可驻留于服务器设备上的架构。可视化器1116可位于客户端设备上以改善与经动画化的图 的用户体验。当可视化器1116位于用户的设备上时,动画的流畅性和图的响应性可相对于 其中渲染和可视化可在远程设备上执行的架构被改善。
[0180] 其中远程设备执行部分或全部可视化的实施例可以下情形中可以是有用的:其中 客户端设备可能不具有足够的处理能力来渲染图。与用客户端侧可视化工具可生成的相 比,此类实施例可允许更复杂和详细的渲染。
[0181] 控制器设备1104可操作在硬件平台1120上,它可提供两个不同的功能,其中之一 可以是数据浏览器1126,通过该数据浏览器可检索并准备用于可视化的数据,以及跟踪器 配置管理器1122,其中对跟踪器的改变可被创建和分派。用户界面通信器1124可通过浏览 器1114中的组件访问以导致浏览器1126或跟踪器配置管理器1122中的改变。
[0182] 在一些实施例中,用户界面1118可包括可被用来配置或改变跟踪器的配置的对话 框、选择工具、或其他用户界面组件。此类配置可包括与跟踪器的一般性操作有关的项,诸 如采样频率、分配给跟踪器的资源、开始或停止跟踪器的条件、以及其他一般性操作选项。 在一些实施例中,此类改变可一般性地被应用或被应用至从该图中选择的项。
[0183] 数据浏览器1126可从数据储存库1106检索数据集1128并准备所述数据集以通过 可视化器1116来查看。数据浏览器1126可响应于回放控件,诸如实施例100中的控件128到 134〇
[0184] 处于正常回放模式的数据浏览器1126可检索数据集1128并使得该数据集对可视 化器1116可用。在许多实施例中,这种动作可根据由数据集1128表示的时间序列在重复的、 周期性的基础上执行。例如,一时间序列可被创建,其中数据集1128可表示一时间序列期间 的每秒时间。在这一示例中,数据浏览器1126可每秒使每个后续数据集可用。
[0185] 用户界面通信器1124可接收来自浏览器1114的命令来暂停、倒带、快进、播放、停 止和其他命令。这些命令可被传递至数据浏览器1126,该数据浏览器可开始检索数据集 1128并按照所请求的序列以及按照所请求的帧率或速度来呈现数据集。
[0186] 跟踪器配置管理器1122可接收来自用户界面通信器1124的输入,其中所述输入可 定义要对踪迹数据所做的改变。所述改变可反映可被收集的附加数据点,以及可被移除的 数据点或其他改变。在一些情况下,所述改变可反映行为或操作改变,诸如在跟踪器可被执 行时,数据收集频率,或其他改变。
[0187] 跟踪器设备1108可在硬件平台1130上操作并具有仪表化(instrumented)执行环 境1132,该执行环境可包括跟踪器1134和针对跟踪器1134的配置1136。跟踪器配置管理器 1122可更新配置1136以使跟踪器1134改变行为。
[0188] 应用1138可在仪表化的执行环境1132中执行,从而允许跟踪器1134生成踪迹数 据。踪迹数据可被数据传送方1140传送至数据储存库1106。数据传送方1140可周期性地与 数据储存库1106通信以传送来自跟踪器1134的任何所收集的数据。
[0189] 图12是示出用于可视化来自跟踪器的数据的过程的实施例1200的图示。实施例 1200可示出处理流水线,其中转换可被插入该处理流水线。在一些实施例中,用户编写的可 执行代码可被插入到该处理流水线中以按照许多不同方式准备数据以用于可视化。
[0190] 跟踪器1202可生成可由存储流水线1204处理的踪迹数据流。存储流水线1204可使 用框1206中的转换的集合来准备和处理踪迹数据以在框1208中存储。在一些实施例中,踪 迹数据可以是可由跟踪器1202生成的连续数据项流。这种数据流可随时间在量上增加和减 少。在其他实施例中,踪迹数据可以是在特定间隔报告的数据的快照。这种数据流可被常规 性地重复。
[0191] 存储流水线1204可以是向数据流应用框1206中的转换的集合,随后使数据在框 1208中被存储的过程集合。框1206中的转换可在存储之前向数据应用格式化、数据分析、聚 集、或其他改变。在许多情况下,框1206中的转换可执行去重复、压缩、差异化或可减少框 1208中的踪迹数据侧的其他操作,以及格式化该数据以用于稍后检索。
[0192] 框1206中的转换可在框1208中的踪迹数据的存储之前被应用。当这种转换可以是 有损的或者以其他方式降低数据的准确度、保真性或完整性时,这种转换可以在以下意义 上是持久的:稍后的分析可能无法重新创建原始数据。
[0193] 在框1208中的存储之后,可视化流水线1210可在框1216中可视化数据之前经由数 据浏览器1212在框1214中应用附加转换集合。可视化流水线1210可准备该数据以用于可视 化。框1214中的转换可能在以下意义上不是持久的:框1208中的原始数据仍旧保留,从而允 许在稍后的分析中应用不同的转换集合。
[0194] 框1214中的转换可执行用于准备数据以用于可视化的各种操作。在一些情况下, 框1214中的转换可执行格式化和其他操作,以使得框1216中的可视化器可接受并解析传入 数据。在一些情况下,框1214中的转换可执行过滤、聚集、统计分析、和可影响哪些数据被显 示以及数据被如何显示的其他操作。
[0195] 框1216中的可视化器可以是用户可藉以查看数据并控制数据被如何显示的用户 界面1218的部分。用于控制数据可被如何显示的一种机制可以是框1220中的用户界面,用 户可在该用户界面创建或编辑转换。用户还可以能够在框1224中存储和检索转换以供稍后 使用。在许多实施例中,若干预先配置的转换的库或选择可被存储以供用户选择和与编辑 或不与编辑一起使用。
[0196] 框1220中的用户界面可允许用户添加和编辑用于定义转换的一部分的可执行代 码。该可执行代码可以是可被编译、解释、或以其他方式作为转换执行的任何功能描述、表 达式、或其他定义。
[0197] 一旦转换被添加,则在框1228中被插入到处理流水线之前,该转换可在框1226中 经受恶意软件检查。转换可在框1206中的存储之前或在框1214中的存储之后被标识为要被 应用。
[0198] 图13是示出示例用户界面的实施例1300的图示。实施例1300可示出用户界面,用 户可通过该用户界面输入可被部署为转换的可执行代码。
[0199] 实施例1300可示出可视化用户界面1302,该可视化用户界面包含力导向图1304、 图例1306、以及控制集合1308。力导向图1304可用节点和边形式来显示踪迹数据,其中边可 表示对象之间的关系。图例1306可显示元素的组。控制集合1308可以是控制按钮集合,用户 可通过所述控制按钮来输入回放命令来查看踪迹数据的时间序列中的不同数据集。
[0200] 窗口 1310可以是用户可通过其来选择不同数据以在图中示出的界面。两个不同的 选项1312和1314可反映可被选择的预定义的转换,以及第三选项1316,其中用户可在文本 编辑器1318中输入并编辑可执行表达式。用户还可在选择1320中选择用于实现转换的那个 处理流水线。
[0201] 所述转换可使得数据以不同方式被显示,并且有时被存储。所述转换可以用可执 行语言来定义,所述可执行语言可被编译或解释来处理数据。在一些情况下,该语言可允许 一起分析多个数据元素。其简单示例可以是取得两个元素之间的差异。
[0202] 所述转换可允许应用过滤器,诸如以显示来自特定函数或存储器对象的踪迹数 据,同时消除其他数据。在一些情况下,所述转换可包括表达式,诸如以显示来自操作达大 于10秒且小于15秒的过程的数据。
[0203]用于表达式的伪代码的示例可以是:
Figure CN105122257BD00201
[0205] 以上伪代码可被应用至所显示的每个变量以针对所述时间序列中的每个时间片 对该变量的每次出现进行计数。在这种转换中,所显示的数据可随时间增长。
[0206] 因为所述转换可包括用户提供的代码,所以所述转换可在部署之前经受恶意软件 检查。该恶意软件检查可尝试抓住恶意的或畸形的转换,以使得所述转换不会导致不想要 的错误或恶意影响。
[0207] 图14是显示可收集并在图中显示踪迹数据的计算环境的实施例1400的图示。实施 例1400示出可呈递实施例1300以及其他实施例中描述的操作的硬件组件。
[0208] 图14的图示出了系统的功能组件。在一些情况下,组件可以是硬件组件、软件组 件、或者硬件和软件的组合。一些组件可以是应用级软件,而其他组件可以是执行环境级组 件。在一些情况下,一个组件到另一组件的连接可以是紧密连接,其中两个或更多个组件在 单个硬件平台上操作。在其他情况下,连接可通过跨长距离的网络连接来进行。每个实施例 都可使用不同的硬件、软件、以及互连架构来实现所描述的功能。
[0209] 实施例1400中所示的各种设备的每一个可具有硬件平台。相应硬件平台可类似于 硬件平台204。设备可以是任何类型的硬件平台,诸如个人计算机、服务器计算机、游戏控制 台、平板计算机、移动电话、或具有可编程处理器的任何其它设备。
[0210] 实施例1400示出了网络环境,其中转换可被部署以修改数据收集、存储、和可视化 的操作。所述转换可被存储并在各种上下文中部署并通过转换管理器来管理。
[0211] 环境可包括可视化系统1402、控制器设备1406、转换管理器1408、跟踪器设备 1410、以及数据存储库1412。可视化系统1402可提供用于整个系统的用户界面,并可向控制 器设备1406发送命令来提供数据以用于可视化。转换管理器1408可接收、存储、测试、和向 各种设备分派转换。跟踪器设备1410可收集踪迹数据,该踪迹数据可由数据储存库1412存 储。
[0212] 可视化系统1402可包含浏览器1416可在其上运行的硬件平台1414。浏览器可向用 户呈现用户界面1418。浏览器1416可执行可视化器1420,该可视化器可创建并显示图。可视 化器1420可以是在浏览器1416内运行以检索数据并渲染图的可执行代码。可视化器1420可 包括动画例程以及可允许用户与该图交互的交互式组件。
[0213] 浏览器1416还可包括编辑器1422,用户可通过该编辑器输入可在更大的系统内作 为各种转换使用的可执行代码。所述转换可在数据收集期间由跟踪器、在数据存储器件由 存储管理器、以及在准备数据以用于可视化时由预处理器使用。用户提供的代码可允许用 于用户控制数据可被如何收集、存储以及显示的宽范围的可定制选项。这种控制在以下场 景中可以是有用的:其中用户可试验收集和查看数据的不同方式。
[0214] 控制器设备1406可在硬件平台1424上操作。数据浏览器1426可从可视化系统1402 上的用户界面1418控制。数据浏览器1426可选择要由可视化器1420显示的数据集。在用通 信代理1432传送数据集之前,预处理器1428可向数据应用各种转换1430。
[0215] 跟踪器设备1410可对硬件平台1434操作并具有可包括跟踪器1438的仪表化执行 环境1436。跟踪器1438可具有配置1440,该配置可定义跟踪器1438的行为,诸如要收集什么 数据以及可在什么条件下收集数据。
[0216] 跟踪器设备1410还可具有转换1444的集合,所述转换可处理所收集的数据。转换 1444可在存储数据之前被应用并可被用于聚集、紧缩、浓缩或以其他方式准备数据以被传 送至数据储存库1412。转换1444还可执行数据分析,包括各种统计分析、比较、或任何其他 操作。
[0217] 数据储存库1412可具有硬件平台1456,存储管理器1458可在该硬件平台上操作。 存储管理器1458可接收来自各种跟踪器设备的数据并在存储数据1462之前应用转换1460。 转换1460可在存储之前执行许多不同类型的操作,包括聚集和紧缩,以及概括、比较或其他 操作。
[0218] 实施例1400示出用于应用存储前转换的两个位置。一个位置可以是在转换1444的 跟踪器设备1410处,而另一个位置可以是在转换1460的数据储存库1412处。用于转换的每 个位置可在存储之前向踪迹数据应用改变。在跟踪器设备1410处应用的转换可在数据传输 之前应用转换,如此,转换1444中的一些可紧缩该数据或以其他方式准备该数据以通过网 络1464传送至数据储存库1412。
[0219] 转换管理器1408可在硬件平台1446上操作并可包括转换管理器1448。转换管理器 1448可通过可视化系统1402接收来自用户的转换,使用分派器1450使该转换被分派到不同 设备。分派器1450可与执行转换的各设备通信、传送转换、并使转换在指定条件下执行。
[0220] 例如,分派器1450可向跟踪器设备1410部署转换以在传送之前压缩数据,并向数 据储存库1412部署第二转换以在存储数据之前创建概括统计数据。分派器1450可使得转换 对于在特定时间段期间跟踪特定应用1442是有条件的,随后使得所述转换被关闭。
[0221] 分派器1450还可使某些转换被部署在控制器设备1406上以准备、过滤或以其他方 式修改可在可视化中显示的数据。在一些情况下,部署到预处理器1428的转换1430可以在 用户控制下近实时地部署,以使得显示在可视化中的数据可被快速改变。
[0222] 转换管理器1448可接收来自用户的新的或经编辑的转换并随后使用恶意软件检 查器1452来确定所述转换是否可能是不正确的、不完整的、或具有导致损害的可能。恶意软 件检查器1452可使用各种工具来批准或拒绝给定转换。这样的工具可包括病毒检查器、白 名单、黑名单、或其他技术。
[0223] 转换管理器1448可将转换存储在储存库1454中。可使储存库1454中所存储的转换 可用作浏览器1416内的可选选项。
[0224] 图15是示出用于控制针对数据集的时间序列的可视化的方法的实施例1500的流 程图。实施例1500在左手栏示出可视化器和用户界面1502的操作且在右手栏示出数据浏览 器1504。
[0225] 其他实施例可使用不同的排序、更多或更少的步骤、以及不同的命名或术语来完 成相似功能。在一些实施例中,各个操作或操作集合可与其他操作以同步或异步方式并行 地执行。此处所选的步骤是为了以简化的形式示出一些操作原理而选择的。
[0226] 实施例1500可示出用户界面1502和数据浏览器1504之间的交互的简化示例,其中 数据浏览器可处理数据集并呈现数据集以用于可视化。该可视化器可具有数据绑定或对数 据浏览器的其他连接以使得可视化器可检索并显示正被呈现的那些数据集。
[0227] 数据浏览器1504可按序列呈现数据集以使得可视化器呈现随时间改变的图。用户 界面上的控件可指示数据浏览器1504呈现不同的数据集序列以用于正常回放、反向回放、 快进和其他序列。
[0228] 实施例1500示出了一种方法,其中序列可被定义以用于呈现,随后数据浏览器可 穿过该序列前进以使数据集被显示。在实施例1500中,所述序列可以正常正向播放,其中数 据集可按照时间序列被显示;以及反向,其中数据集的序列被倒转或反转;以及快进,其中 序列仅每隔一数据集显示以使得该图可按正常回放的两倍速度更新。
[0229] —旦该序列被定义,则数据浏览器可使用该序列来查找下一数据集,准备该数据 集以用于查看,并使该数据集对可视化器可用。使用数据绑定和其他连接,可视化器可收集 数据集并更新图。
[0230] 在上面呈现的各实施例中的若干实施例中,可视化器可在一个设备上操作而数据 浏览器可在第二设备上操作。在一些情况下,可视化器和用户界面1502和数据浏览器1504 两者可在同一设备或不同设备上操作。
[0231] 从用户界面1502,可发送命令以在框1506中开始可视化。在框1508,该命令可由数 据浏览器1504接收。
[0232] 在框1510中可定义要显示的序列。对于正常回放,该序列可以是正常、正向序列中 的数据集的时间序列。在框1512可选择要显示的下一时间点,且在框1514可检索与该时间 点相关联的数据集。在一些情况下,该数据集可被从数据储存库中检索,该数据储存库可以 是通过网络访问的远程设备。
[0233] 在框1514中检索数据集之后,在框1516可应用任何转换且在框1518可传送数据 集。该过程可返回至框1512以选择序列中的下一数据集。
[0234] 可视化器和用户界面1502可接收框1522中的新数据集并在框1524中渲染或更新 该图。每当数据集可由数据浏览器1504更新时,可视化器可通过框1522和1524的循环来循 环。
[0235] 类似地,数据浏览器1504可通过框1512到1518循环以取回序列中的下一数据集, 准备该数据集,并使该数据集对该可视化器可用。框1512到1518的循环的时序可被设置成 与该数据集所表示的真实时间相对应并由此使该图与底层数据在同一时间帧中更新。
[0236] 在一些实施例中,框1512到1518的循环可被调整得更快或更慢以使得该回放可在 速度上增加或减小。在一些情况下,数据收集频率可比回放频率快得多,这可使得回放比真 实时间更慢。在其他情况下,数据收集频率可比回放频率慢得多,这可使得回放比真实时间 快得多。
[0237] 在某个点,用户界面1502在框1526可发出倒带命令,在框1528该命令可被传送至 数据浏览器1504。数据浏览器1504可在框1530中定义具有相反次序的时间点的新序列。数 据浏览器1504可返回至框1512以选择序列中的下一数据集。因为该序列现在被反转,所以 数据浏览器1504可按相反次序呈现该数据集,且每当该数据集可被更新时,该可视化器可 更新该图。
[0238] 在框1532暂停命令可从用户界面1502发出,并被传送至数据浏览器1504,在框 1534该数据浏览器可接收暂停命令。数据浏览器1504在框1536可仅停止发送数据集以使该 图停止被更新。
[0239] 在框1538播放命令可从用户界面1502发出,并被传送至数据浏览器1504,在框 1540该数据浏览器可接收播放命令。数据浏览器1504在框1542可定义具有按正向次序安排 的时间点的新序列,并且在框1544恢复发送数据集,随后以框1512继续。
[0240] 在框1546快进命令可从用户界面1502发出,并被传送至数据浏览器1504,在框 1548该数据浏览器可接收快进命令。数据浏览器1504在框1550可创建仅具有可用数据集的 子集的序列。在其中快进可按照正常播放速度的两倍速度重放的情况下,该序列可仅包括 每隔一个的数据集。该过程可返回至框1512以循环遍历数据集的序列。
[0241] 对本发明的上述描述是出于图示和描述的目的而呈现的。它不旨在穷举本主题或 将本主题限于所公开的精确形式,并且鉴于上述教导其他修改和变型都是可能的。选择并 描述实施例来最好地解释本发明的原理及其实践应用,由此使本领域的其他技术人员能够 在各种实施例和各种适于所构想的特定用途的修改中最好地利用本发明。所附权利要求书 旨在被解释为包括除受现有技术所限的范围以外的其他替换实施例。

Claims (24)

1. 一种计算机实现的方法,其中使用力导向图来对消息的传递进行可视化,通过应用 预定义的或用户定义的转换来将所述力导向图用作输入以允许为显示而准备踪迹数据,所 述方法包括: 接收图数据,所述图数据包括在预定义的间隔传送的周期性更新; 分析所述图数据并准备所述力导向图,所述力导向图由节点和至少一些节点之间的边 组成,所述节点表示各计算元素,所述边表示所述各计算元素之间传递的消息的周期性更 新; 在显示设备上显示所述图数据以对消息的周期性更新的发生进行可视化; 接收所述力导向图的一个或多个计算元素的转换定义,所述转换定义包括对所述力导 向图的所述一个或多个计算元素执行操作的可执行代码; 对所述转换定义执行恶意软件分析;以及 显示经由所述转换定义修改的所述力导向图。
2. 如权利要求1所述的方法,其特征在于,进一步包括: 在所述显示设备上呈现用户界面以接受所述转换定义。
3. 如权利要求2所述的方法,其特征在于,所述用户界面包括一组执行设置。
4. 如权利要求3所述的方法,其特征在于,进一步包括存储所述转换定义。
5. 如权利要求4所述的方法,其特征在于,所述用户界面进一步包括用于从所存储的转 换定义集合中选择所述转换定义的检索机制。
6. 如权利要求1所述的方法,其特征在于,所述图数据为在跟踪应用时生成的踪迹数 据。
7. 如权利要求6所述的方法,其特征在于,所述转换定义包括选择第一跟踪器输出以及 向所述第一跟踪器输出应用转换函数。
8. 如权利要求7所述的方法,其特征在于,所述第一跟踪器输出被包括在所述踪迹数据 中而不被包括在所述图数据中。
9. 如权利要求7所述的方法,其特征在于,所述转换函数被应用至多个跟踪器输出数据 项。
10. 如权利要求1所述的方法,其特征在于,实况图为随着每个更新被接收而改变的经 动画化的图。
11. 如权利要求1所述的方法,其特征在于,经转换的图数据取代所述图数据在所述图 中被显示。
12. 如权利要求1所述的方法,其特征在于,所述恶意软件分析包括对照白名单检查所 述可执行代码。
13. 如权利要求1所述的方法,其特征在于,所述恶意软件分析包括对照黑名单检查所 述可执行代码。
14. 一种可视化系统,所述可视化系统使用力导向图来对消息的传递进行可视化,通过 应用预定义的或用户定义的转换来将所述力导向图用作输入以允许为显示而准备踪迹数 据,所述可视化系统包括: 显不设备; 可视化器,所述可视化器: 接收图数据,所述图数据包括周期性更新; 分析所述图数据并准备所述力导向图,所述力导向图由节点和至少一些节点之间的边 组成,所述节点表示各计算元素,所述边表示所述各计算元素之间传递的消息的周期性更 新; 在所述显示设备上显示所述图数据,以对消息的周期性更新的发生进行可视化; 显示包括用于所述力导向图的一个或多个计算元素的转换定义的输入的用户界面,所 述转换定义包括对所述力导向图的所述一个或多个计算元素执行操作的可执行代码; 将所述转换定义传送至数据处理流水线,所述数据处理流水线具有转换评估器并产生 所述图数据;以及 显示由所述转换定义修改的所述力导向图。
15. 如权利要求14所述的系统,其特征在于,所述用户界面包括编辑所述可执行代码的 编辑器。
16. 如权利要求15所述的系统,其特征在于,所述用户界面包括用于从存储的状态中选 择所述转换定义的检索机制。
17. 如权利要求16所述的系统,其特征在于,所述用户界面允许在从所述存储的状态检 索之后编辑所述转换定义。
18. 如权利要求14所述的系统,其特征在于,进一步包括: 包括多个所存储的转换定义的存储储存库。
19. 如权利要求18所述的系统,其特征在于,进一步包括: 包括用于召回所述所存储的转换的机制的用户界面组件。
20. 如权利要求14所述的系统,其特征在于,所述数据处理流水线被包含在所述系统 内。
21. 如权利要求14所述的系统,其特征在于,所述数据处理流水线被通过网络访问。
22. 如权利要求14所述的系统,其特征在于,进一步包括: 恶意软件检查器,所述恶意软件检查器在向所述数据处理流水线传送所述转换定义之 前评估所述可执行代码。
23. 如权利要求14所述的系统,其特征在于,所述数据处理流水线在将所述数据存储在 数据储存库之前执行所述转换定义。
24. 如权利要求14所述的系统,其特征在于,所述数据处理流水线在将所述数据存储在 数据储存库之后执行所述转换定义。
CN201380075219.1A 2013-02-01 2013-06-16 用于动态显示跟踪器数据的转换函数插入 CN105122257B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/757,631 2013-02-01
US13/757,631 US9256969B2 (en) 2013-02-01 2013-02-01 Transformation function insertion for dynamically displayed tracer data
PCT/US2013/046050 WO2014120270A1 (en) 2013-02-01 2013-06-16 Transformation function insertion for dynamically displayed tracer data

Publications (2)

Publication Number Publication Date
CN105122257A CN105122257A (zh) 2015-12-02
CN105122257B true CN105122257B (zh) 2018-10-16

Family

ID=49042583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380075219.1A CN105122257B (zh) 2013-02-01 2013-06-16 用于动态显示跟踪器数据的转换函数插入

Country Status (4)

Country Link
US (2) US9256969B2 (zh)
EP (1) EP2951751B1 (zh)
CN (1) CN105122257B (zh)
WO (1) WO2014120270A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US8789030B2 (en) 2012-09-18 2014-07-22 Concurix Corporation Memoization from offline analysis
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8752034B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Memoization configuration file consumed at runtime
US8752021B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Input vector analysis for memoization estimation
US8656378B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Memoization configuration file consumed at compile time
US8839204B2 (en) 2012-11-08 2014-09-16 Concurix Corporation Determination of function purity for memoization
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
WO2015071778A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Application execution path tracing with configurable origin definition
WO2015071777A1 (en) 2013-11-13 2015-05-21 Concurix Corporation Software component recommendation based on multiple trace runs
US20150212658A1 (en) * 2014-01-24 2015-07-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Indicating altered user interface elements
US10269152B2 (en) * 2015-06-05 2019-04-23 International Business Machines Corporation Force-directed graphs
US10748312B2 (en) * 2016-02-12 2020-08-18 Microsoft Technology Licensing, Llc Tagging utilizations for selectively preserving chart elements during visualization optimizations
US10565749B1 (en) * 2016-06-10 2020-02-18 Invincea, Inc. Methods and apparatus for efficiently processing a graph data structure
US20180137667A1 (en) 2016-11-14 2018-05-17 Oracle International Corporation Graph Visualization Tools With Summary Visualization For Very Large Labeled Graphs
CN106843784B (zh) * 2017-01-19 2021-01-22 沃民高新科技(北京)股份有限公司 显示数据的方法和装置
US10585575B2 (en) 2017-05-31 2020-03-10 Oracle International Corporation Visualizing UI tool for graph construction and exploration with alternative action timelines
US10762111B2 (en) 2017-09-25 2020-09-01 International Business Machines Corporation Automatic feature learning from a relational database for predictive modelling
US10628980B2 (en) * 2017-10-30 2020-04-21 Nutanix, Inc. High-performance graph rendering in browsers
US10706376B2 (en) * 2018-07-09 2020-07-07 GoSpace AI Limited Computationally-efficient resource allocation
US10216546B1 (en) * 2018-07-09 2019-02-26 Insitu Software Limited Computationally-efficient resource allocation
CN109597844B (zh) * 2019-01-31 2020-12-22 中科人工智能创新技术研究院(青岛)有限公司 基于深度神经网络与图网络的核心用户挖掘方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504871C (zh) * 2005-11-18 2009-06-24 国际商业机器公司 用于外部数据模型的表格集成的方法和系统
CN101501678A (zh) * 2006-08-10 2009-08-05 起元软件有限公司 在基于图的计算中分配服务

Family Cites Families (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2765969B2 (ja) * 1989-07-31 1998-06-18 日立ソフトウエアエンジニアリング株式会社 図式データ駆動型プログラム開発支援装置
US5778004A (en) * 1995-06-02 1998-07-07 Unisys Corporation Vector translator
US7091948B2 (en) * 1997-04-25 2006-08-15 Immersion Corporation Design of force sensations for haptic feedback computer interfaces
US5758183A (en) * 1996-07-17 1998-05-26 Digital Equipment Corporation Method of reducing the number of overhead instructions by modifying the program to locate instructions that access shared data stored at target addresses before program execution
AU5461099A (en) 1998-07-30 2000-02-21 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6378066B1 (en) 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
CA2315449A1 (en) 2000-08-10 2002-02-10 Ibm Canada Limited - Ibm Canada Limitee Generation of runtime execution traces of applications and associated problem determination
US6807651B2 (en) 2001-06-15 2004-10-19 Cadence Design Systems, Inc. Procedure for optimizing mergeability and datapath widths of data flow graphs
US20020196229A1 (en) * 2001-06-26 2002-12-26 Frank Chen Graphics-based calculator capable of directly editing data points on graph
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7194664B1 (en) 2003-09-08 2007-03-20 Poon Fung Method for tracing application execution path in a distributed data processing system
US7913305B2 (en) 2004-01-30 2011-03-22 Microsoft Corporation System and method for detecting malware in an executable code module according to the code module's exhibited behavior
US7343521B2 (en) 2004-05-28 2008-03-11 International Business Machines Corporation Method and apparatus to preserve trace data
JP2005346414A (ja) 2004-06-03 2005-12-15 Fujitsu Ltd トレース処理プログラム、方法及び装置
US7346809B2 (en) 2004-08-05 2008-03-18 International Business Machines Corporation Bootable post crash analysis environment
US7774295B2 (en) 2004-11-17 2010-08-10 Targit A/S Database track history
US7606168B2 (en) 2005-01-28 2009-10-20 Attenex Corporation Apparatus and method for message-centric analysis and multi-aspect viewing using social networks
US7810075B2 (en) 2005-04-29 2010-10-05 Sap Ag Common trace files
US7239980B2 (en) 2005-08-30 2007-07-03 International Business Machines Corporation Method and apparatus for adaptive tracing with different processor frequencies
WO2007070711A2 (en) 2005-12-15 2007-06-21 Malloy Patrick J Interactive network monitoring and analysis
US20070143795A1 (en) 2005-12-20 2007-06-21 Duong-Han Tran Application trace for distributed systems environment
US7979245B1 (en) 2006-05-17 2011-07-12 Quest Software, Inc. Model-based systems and methods for monitoring computing resource performance
FR2904499B1 (fr) 2006-07-27 2009-01-09 Commissariat Energie Atomique METHOD FOR DECODING MESSAGES WITH ORDERING ACCORDING TO NEIGHBORHOOD RELIABILITY.
US8037457B2 (en) 2006-09-29 2011-10-11 Sap Ag Method and system for generating and displaying function call tracker charts
US8028200B2 (en) 2006-09-29 2011-09-27 Sap Ag Tracing operations in multiple computer systems
WO2008080780A1 (en) 2007-01-05 2008-07-10 International Business Machines Corporation Recording execution information for a software application
US8543711B2 (en) 2007-04-30 2013-09-24 Hewlett-Packard Development Company, L.P. System and method for evaluating a pattern of resource demands of a workload
US8214806B2 (en) 2007-05-09 2012-07-03 International Business Machines Corporation Iterative, non-uniform profiling method for automatically refining performance bottleneck regions in scientific code
US7698602B2 (en) 2007-06-13 2010-04-13 International Business Machines Corporation Systems, methods and computer products for trace capability per work unit
US8276117B2 (en) 2007-08-03 2012-09-25 International Business Machines Corporation Displaying and refactoring programs that include database statements
US8301755B2 (en) 2007-12-14 2012-10-30 Bmc Software, Inc. Impact propagation in a directed acyclic graph
US20110004598A1 (en) 2008-03-26 2011-01-06 Nec Corporation Service response performance analyzing device, method, program, and recording medium containing the program
JP5386905B2 (ja) 2008-09-25 2014-01-15 富士通セミコンダクター株式会社 プロファイリング方法およびプロファイリングプログラム
AU2009322441B2 (en) 2008-12-02 2016-07-28 Ab Initio Technology Llc Visualizing relationships between data elements
US9076125B2 (en) 2009-02-27 2015-07-07 Microsoft Technology Licensing, Llc Visualization of participant relationships and sentiment for electronic messaging
US8327377B2 (en) 2009-04-30 2012-12-04 Ca, Inc. Detecting, logging and tracking component dependencies in web service transactions
CN102460408B (zh) 2009-06-01 2014-08-06 惠普开发有限公司 用于收集应用性能数据的系统和方法
US8352907B2 (en) 2009-08-10 2013-01-08 International Business Machines Corporation Software application recreation
US9082126B2 (en) * 2009-09-25 2015-07-14 National Electronics Warranty, Llc Service plan web crawler
US8275816B1 (en) 2009-11-06 2012-09-25 Adobe Systems Incorporated Indexing messaging events for seeking through data streams
US8356354B2 (en) * 2009-11-23 2013-01-15 Kaspersky Lab, Zao Silent-mode signature testing in anti-malware processing
US9639446B2 (en) 2009-12-21 2017-05-02 International Business Machines Corporation Trace monitoring
US20130132780A1 (en) 2010-03-26 2013-05-23 Software Diagnostics Technology Gmbh Method for Automatically Detecting and Excluding a Tracing Instruction from Further Trace Data Generation for a Software System, a Computer System, and a Computer Program Product
WO2011142720A1 (en) 2010-05-14 2011-11-17 Gabriyel Wong Chee Kien A self-organizing and contextual graphical user interface
EP2390790A1 (en) 2010-05-27 2011-11-30 Fujitsu Limited Profiling of software applications
US8966447B2 (en) 2010-06-21 2015-02-24 Apple Inc. Capturing and displaying state of automated user-level testing of a graphical user interface application
US20120042212A1 (en) 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US9177041B2 (en) * 2010-09-03 2015-11-03 Robert Lewis Jackson, JR. Automated stratification of graph display
US9977659B2 (en) 2010-10-25 2018-05-22 Ab Initio Technology Llc Managing data set objects
US8583978B2 (en) 2010-11-09 2013-11-12 Cisco Technology, Inc. Multicast message retransmission
US8938720B2 (en) 2010-11-30 2015-01-20 Sap Se Trace visualization for object oriented programs
US8843852B2 (en) * 2010-12-17 2014-09-23 Orca Health, Inc. Medical interface, annotation and communication systems
US9137136B2 (en) 2011-02-04 2015-09-15 Riverbed Technology, Inc. Overhead management for event tracing
US20120278164A1 (en) 2011-02-23 2012-11-01 Nova Spivack Systems and methods for recommending advertisement placement based on in network and cross network online activity analysis
US8438427B2 (en) * 2011-04-08 2013-05-07 Ca, Inc. Visualizing relationships between a transaction trace graph and a map of logical subsystems
US8756171B2 (en) 2011-06-15 2014-06-17 International Business Machines Corporation Generating predictions from a probabilistic process model
US10592825B2 (en) 2011-06-22 2020-03-17 International Business Machines Corporation Application placement among a set of consolidation servers utilizing license cost and application workload profiles as factors
US8312056B1 (en) 2011-09-13 2012-11-13 Xerox Corporation Method and system for identifying a key influencer in social media utilizing topic modeling and social diffusion analysis
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US20120222043A1 (en) 2012-05-01 2012-08-30 Concurix Corporation Process Scheduling Using Scheduling Graph to Minimize Managed Elements
US8615766B2 (en) 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US8495598B2 (en) 2012-05-01 2013-07-23 Concurix Corporation Control flow graph operating system configuration
US8595743B2 (en) 2012-05-01 2013-11-26 Concurix Corporation Network aware process scheduling
US9417935B2 (en) 2012-05-01 2016-08-16 Microsoft Technology Licensing, Llc Many-core process scheduling to maximize cache usage
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US20120324454A1 (en) 2012-05-04 2012-12-20 Concurix Corporation Control Flow Graph Driven Operating System
US9047196B2 (en) 2012-06-19 2015-06-02 Concurix Corporation Usage aware NUMA process scheduling
US8700838B2 (en) 2012-06-19 2014-04-15 Concurix Corporation Allocating heaps in NUMA systems
US20120317421A1 (en) 2012-06-19 2012-12-13 Concurix Corporation Fingerprinting Executable Code
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization
US8707326B2 (en) 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US8966462B2 (en) 2012-08-10 2015-02-24 Concurix Corporation Memory management parameters derived from system modeling
US20130080760A1 (en) 2012-08-10 2013-03-28 Concurix Corporation Execution Environment with Feedback Loop
US9043788B2 (en) 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US20130085882A1 (en) 2012-09-18 2013-04-04 Concurix Corporation Offline Optimization of Computer Software
US8789030B2 (en) 2012-09-18 2014-07-22 Concurix Corporation Memoization from offline analysis
US9262416B2 (en) 2012-11-08 2016-02-16 Microsoft Technology Licensing, Llc Purity analysis using white list/black list analysis
US8694574B2 (en) 2012-11-08 2014-04-08 Concurix Corporation Optimized settings in a configuration database with boundaries
US8656378B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Memoization configuration file consumed at compile time
US8656135B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed prior to execution
US8826254B2 (en) 2012-11-08 2014-09-02 Concurix Corporation Memoizing with read only side effects
US8607018B2 (en) 2012-11-08 2013-12-10 Concurix Corporation Memory usage configuration based on observations
US8752021B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Input vector analysis for memoization estimation
US8752034B2 (en) 2012-11-08 2014-06-10 Concurix Corporation Memoization configuration file consumed at runtime
US8656134B2 (en) 2012-11-08 2014-02-18 Concurix Corporation Optimized memory configuration deployed on executing code
US20130074057A1 (en) 2012-11-08 2013-03-21 Concurix Corporation Selecting Functions for Memoization Analysis
US8839204B2 (en) 2012-11-08 2014-09-16 Concurix Corporation Determination of function purity for memoization
US20140025572A1 (en) 2013-01-25 2014-01-23 Concurix Corporation Tracing as a Service
US9021262B2 (en) 2013-01-25 2015-04-28 Concurix Corporation Obfuscating trace data
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US9207969B2 (en) 2013-01-25 2015-12-08 Microsoft Technology Licensing, Llc Parallel tracing for performance and detail
US9323863B2 (en) 2013-02-01 2016-04-26 Microsoft Technology Licensing, Llc Highlighting of time series data on force directed graph
US20140019879A1 (en) 2013-02-01 2014-01-16 Concurix Corporation Dynamic Visualization of Message Passing Computation
US9256969B2 (en) 2013-02-01 2016-02-09 Microsoft Technology Licensing, Llc Transformation function insertion for dynamically displayed tracer data
US20130232452A1 (en) 2013-02-01 2013-09-05 Concurix Corporation Force Directed Graph with Time Series Data
US20130232433A1 (en) 2013-02-01 2013-09-05 Concurix Corporation Controlling Application Tracing using Dynamic Visualization
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US9021447B2 (en) 2013-02-12 2015-04-28 Concurix Corporation Application tracing by distributed objectives
US20130283102A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deployment of Profile Models with a Monitoring Agent
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8843901B2 (en) 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
US20140013306A1 (en) 2013-04-20 2014-01-09 Concurix Corporation Computer Load Generator Marketplace
US20140013308A1 (en) 2013-04-20 2014-01-09 Concurix Corporation Application Development Environment with Services Marketplace
US20130283242A1 (en) 2013-04-20 2013-10-24 Concurix Corporation Tracing Closures in a Callback Environment
US20130282545A1 (en) 2013-04-20 2013-10-24 Concurix Corporation Marketplace for Monitoring Services
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100504871C (zh) * 2005-11-18 2009-06-24 国际商业机器公司 用于外部数据模型的表格集成的方法和系统
CN101501678A (zh) * 2006-08-10 2009-08-05 起元软件有限公司 在基于图的计算中分配服务

Also Published As

Publication number Publication date
EP2951751A4 (en) 2016-09-28
EP2951751B1 (en) 2019-02-27
US9437024B2 (en) 2016-09-06
US9256969B2 (en) 2016-02-09
WO2014120270A1 (en) 2014-08-07
US20160133035A1 (en) 2016-05-12
US20130229416A1 (en) 2013-09-05
CN105122257A (zh) 2015-12-02
EP2951751A1 (en) 2015-12-09

Similar Documents

Publication Publication Date Title
US10389592B2 (en) Method, system and program product for allocation and/or prioritization of electronic resources
US9846638B2 (en) Exposing method related data calls during testing in an event driven, multichannel architecture
JP2020017302A (ja) 分散型工業パフォーマンス監視及び分析プラットフォーム
JP2020021502A (ja) 分散型工業パフォーマンス監視及び分析
US20200026634A1 (en) Timeline displays of event data with start and end times
US10127022B2 (en) Tools and methods for real-time dataflow programming language
US9235316B2 (en) Analytic process design
Daniel et al. Understanding ui integration: A survey of problems, technologies, and opportunities
CN103532780B (zh) 用于it领域的运维监控一体化系统及一体化监控方法
US8819617B1 (en) System and method for providing access to data in a plurality of software development systems
US9177049B2 (en) System and method for interactive visual representation of information content using assertions
US10861014B2 (en) Data monetization and exchange platform
EP2838039A2 (en) Context-sensitive views
EP2151773B1 (en) Synchronous to asynchronous web page conversion
US20170093645A1 (en) Displaying Interactive Topology Maps Of Cloud Computing Resources
US9053435B2 (en) Generating application models based on discovery based machine learning
US8417798B2 (en) Deploying artifacts for packaged software application in cloud computing environment
US9465726B2 (en) Abstract layer for automatic user interface testing
US20180089272A1 (en) Techniques for generating structured metrics from ingested events
GB2545303A (en) Data analytic services for distributed industrial performance monitoring
US20200287807A1 (en) Generating and displaying topology map time-lapses of cloud computing resources
US8219669B2 (en) Operational process control data server
US8713520B2 (en) Web development environment that enables a developer to interact with run-time output presentation of a page
US8561048B2 (en) Late and dynamic binding of pattern components
US9077642B2 (en) Application level interface to network analysis tools

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170516

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: CONCURIX CORP.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant