CN105144117A - 对调用堆栈和上下文数据的自动相关和分析 - Google Patents
对调用堆栈和上下文数据的自动相关和分析 Download PDFInfo
- Publication number
- CN105144117A CN105144117A CN201380065092.5A CN201380065092A CN105144117A CN 105144117 A CN105144117 A CN 105144117A CN 201380065092 A CN201380065092 A CN 201380065092A CN 105144117 A CN105144117 A CN 105144117A
- Authority
- CN
- China
- Prior art keywords
- delay
- user
- event
- implemented method
- computer implemented
- 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.)
- Granted
Links
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- 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
-
- 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
- G06F11/3419—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 by assessing time
- G06F11/3423—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 by assessing time where the assessed time is active or idle time
-
- 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/3466—Performance evaluation by tracing or 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/81—Threshold
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Debugging And Monitoring (AREA)
- Automatic Analysis And Handling Materials Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
各实施例允许用户定义被用来分析调用堆栈和上下文数据的事件场景。被延迟的场景通过在延迟期间采集的CPU样本的聚集调用堆栈来标记并报告给用户。聚集是对正被监视的进程的主用户界面线程的样本进行的。用户可选择其他线程来查看关于该线程的调用堆栈聚集。用户可从调用堆栈呈现中标识哪些方法使用了某一延迟的大部分时间。事件分析工具允许通过在延迟发生时将延迟可视化并允许用户深入了解关于所选延迟的调用堆栈细节来快速探究响应性问题。
Description
背景
在当前的集成开发环境(IDE)中,调查性能问题是一种要求跟踪操作的“轨迹”或获得操作的“简况”,然后审查包容性的和独占性的CPU样本来确定性能受影响之处的人工过程。这种人工分析是耗时的,对于当前性能工具而言存在大学习曲线。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
各实施例允许用户定义被用来分析调用堆栈和上下文数据的事件场景。被延迟的场景通过在延迟期间每1ms采集的CPU样本的聚集调用堆栈来标记并报告给用户。这允许用户标识哪些方法使用了某一延迟的大部分时间。事件分析工具允许通过在延迟发生时将延迟可视化而不要求事后分析来快速探究响应性问题。
各实施例自动地将一个轨迹内的事件开始和停止时间关联到设置文件中定义的场景。当接收开始和结束时间所经过的时间超过场景限制时,检测到延迟。为用户列出受到该延迟影响的方法或线程。
延迟的图形表示被实时提供,并允许在处理之后用户立即从延迟列表快速地导航到关于某一线程的受影响活动/场景的调用堆栈。调用堆栈是从延迟开始到结束每1ms采集的CPU样本的聚集视图。
通过突出显示某一方法中或从该方法调用的任何方法中花费比整个延迟时间的20%更多的时间的所有框架来确定该场景中的最热路径。例如,花费比总延迟时间的20%更多的时间的全部方法被突出显示。20%包括在某一方法所调用的其他方法中花费的任何时间。然而,如果被调用的方法花费少于总延迟时间的20%,则该被调用的方法不被标记。诸如模块加载、盘文件读取等其他资产信息以及延迟开始和结束之间发生的其他事件也对用户可用。可使用用户选择的过滤准则来按模块过滤这些结果,以确切地标识哪些延迟与调用堆栈中所选代码相关联。
附图简述
为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:
图1例示出与事件分析工具相关联的各种组件的职责范围以及各组件所交换的信息。
图2是例示出根据一个实施例的用于分析事件的方法或过程的流程图。
图3是用于记录并显示某一进程中的延迟的事件分析工具的示例显示画面。
图4是示出关于所选延迟的调用堆栈的事件分析工具的示例显示画面。
图5是示出关于所选延迟的上下文信息的事件分析工具的示例显示画面。
图6例示出允许用户从事件分析工具中编辑已有场景601的界面。
图7例示出用于事件分析工具、延迟跟踪器工具或IDE的一种合适的计算和联网环境的示例。
详细描述
各种实施例涉及一种自动关联一个轨迹内的事件开始和停止时间并向用户提供受影响的活动和场景的列表的事件分析工具。事件开始和停止时间对应于可在设置文件中定义的或可由用户提供的各种场景。事件分析工具可使用延迟跟踪器,例如一种用于跟踪在对要求即时响应的用户输入进行响应时的延迟的机制。在一个实施例中,即时延迟跟踪器(即IDT)库被用来跟踪用户动作的响应时间的延迟,使得延迟源可被标识以及补救。即时延迟跟踪器工具的一示例被描述于题为“ImmediateDelayTrackerTool”(即时延迟跟踪器工具)的2011年9月23日提交的待决美国专利申请号13/241229中。在其他实施例中,可与本文所述的事件分析工具一起使用其他延跟踪器系统。这一延迟跟踪器系统的一个示例被描述于题为“UserInterfaceResponsivenessMonitor”(用户界面响应性监视器)的2011年9月23日提交的待决美国专利申请号13/241249中。
IDT标识并记录某一应用执行期间发生的延迟。IDT寻找某一IDE应用引起的一系列事件来标识设置文件或数据结构中定义的场景。当某一场景——即接收特定顺序的事件所经过的时间长度——超过其可允许的阈值时,“延迟”被标识出。延迟通常以CPU滴答(CPUtick)计数来度量,然后在被呈现给用户时或在与设置文件中的限制进行比较时被转换成毫秒。设置文件或数据结构包含关于定义某一场景的一系列事件的信息,并包括该场景被认为是延迟的毫秒阈值。本文所述的事件分析工具(在一个实施例中称为“赛道”(RaceTrack))从用户接收延迟信息,例如场景定义,并将该延迟信息提供给IDT库。该事件分析工具使用IDT来监听由受到观察的应用生成的事件。通过以图形和/或列表表示来呈现延迟信息,该事件分析工具在延迟被发现时进行报告。
除了跟踪延迟之外,IDT库还可提供一组件来记录内核、运行时(如CLR运行时提供者)以及运行终了(rundown)轨迹(如CLR运行终了),然后将该信息合并到单个ETL(提取、变换和加载)日志文件中。当一延迟被检测到时以及当IDT库结束记录时,IDT库生成事件。该事件分析工具订阅这些事件来生成示出哪些延迟被发现了的时间线或列表。该事件分析工具允许用户开始记录内核ETL轨迹文件,该文件包含CPU样本、上下文切换、盘IO、模块加载等。CPU样本可以是例如每1ms从应用采集的调用堆栈。用户能够看到实况发生的延迟,并可在延迟发生时的任何时间停止记录。一旦用户停止记录,轨迹就被处理和分析。内核、运行时以及运行终了轨迹被合并在一起,符号被下载和解析。
事件分析工具实时提供了延迟的图形表示,并允许在处理之后用户立即从延迟列表快速地导航到关于某一线程的受影响活动/场景的调用堆栈。该堆栈是在延迟期间每1ms采集的CPU样本的聚集视图。
以图形表示以及简单列表向用户呈现所选场景期间遇到的延迟的列表。该图形表示绘制应用的执行的时间线,并例如通过柱形条长度或其他指示来例示出每个操作的持续时间,使得用户能够快速地看到哪个操作花费最长时间来执行。
事件分析工具允许通过从时间线或延迟列表进行单次点击而快速探究应用以及导航到对每个延迟负责的调用堆栈。在某一轨迹已被处理之后,用户可从图表或列表中点击某一延迟并看到落在关于该延迟的事件序列的开始和结束时间戳之间的所有CPU样本和上下文切换的聚集。在某些实施例中,当某些样本引起了用户所看到的延迟时,事件分析工具从IDE的主线程过滤出这些样本。
聚集树可被呈现来示出该延迟执行期间调用堆栈中作出的所有不同分叉,以及指示出每个框架中相对于总延迟时间花费了多少时间。聚集调用堆栈示出了在延迟期间大部分时间花费在何处。
在其他实施例中,事件分析工具通过突出显示某一方法中或从该方法调用的任何方法中花费比整个延迟时间的20%更多的时间的所有框架来突出显示场景中的“最热”路径。花费比全部延迟时间的20%更多的时间的全部方法被突出显示。20%的时间包括在该方法所调用的其他方法中花费的任何时间。然而,如果被调用的方法的时间少于总延迟时间的20%,则该被调用的方法不被标记。
事件分析工具示出诸如加载的组件、哪个键被键击、模块加载之类的资产信息,以及延迟的开始和结束之间发生的其他事件。当事件分析工具接收到诸如模块加载和程序包加载之类的某一事件时,它提取信息来确定哪个模块或组件被加载。类似地,当某一键按压事件被接收到时,该工具解析出关于什么键被按压的信息。
用户可选择某一延迟或其他准则来过滤由事件分析工具显示的事件的列表,使得仅那些在延迟的跨度期间发生的事件被示出。这向用户示出诸如加载的组件或被键击的键之类的所有资产,以及涉及所选延迟的事件。
为了进一步为用户简化延迟分析,事件分析工具允许按某一操作期间开始执行的模块来过滤延迟。延迟可按模块来过滤以确切地标识出哪个延迟在其堆栈中具有所选代码。这在用户关注于特定模块或代码时帮助缩小调查范围。仅那些包含所关心的模块的延迟将被显示给用户,从而减少了必须筛选若干无关延迟的开销。
图1例示出与事件分析工具101相关联的各种组件的职责范围以及各组件所交换的信息。IDE102向诸如IDT104之类的延迟跟踪器提供事件103。事件103可包括例如代码标记或测量块。鉴于设置文件或用户配置文件中定义的场景,IDT104监听事件103。IDT104标记任何场景中观察到的延迟并记录ETL文件。
在某一应用运行的同时,IDT104检测该应用中的延迟并每隔一定时间收集调用堆栈。在一个实施例中,调用堆栈是以每1ms的CPU样本为单位来收集的。IDT104将延迟事件、ETL文件或CPU样本调用堆栈105提供给事件分析工具101,事件分析工具101使用该信息来对该应用进行分析。例如,事件分析工具101可聚集不同场景的调用堆栈。事件分析工具101可尤其向用户提供以下类型的信息:延迟的图形和列表表示、显示了热路径的调用堆栈汇总、关于延迟的上下文信息、以及按模块和其他准则过滤的延迟。
事件分析工具101按照用户的指示来开始和停止记录事件。例如,用户可在事件分析工具101上选择“开始记录”或“结束记录”选项,来指示出何时应当收集事件。事件分析工具101将延迟显示给用户。事件分析工具101还将延迟显示给用户,汇总调用堆栈信息,以及显示资产信息。事件分析工具101使用该信息并生成在时间线上示出延迟的显示画面。
事件分析工具101将配置信息106提供给IDT104,例如场景设置文件、ETL输出位置以及其他信息。使用该配置信息106,IDT104然后将信息105发送给事件分析工具101。
图2是例示出根据一个实施例的用于分析事件的方法或过程的流程图。在步骤201,用户启动事件分析工具。事件分析工具被配置成从诸如IDT之类的延迟跟踪器工具接收诸如延迟事件信息之类的输入。在步骤202,用户在事件分析工具上标识感兴趣的进程并选择“开始跟踪”。用户可例如通过选择用户界面上的某一按钮来开始跟踪。
在步骤203,延迟跟踪器工具开始监听事件以从所选进程收集信息。在204,事件分析工具判断记录是否被启用。如果在步骤204记录被启用,则在步骤205事件分析工具指示延迟跟踪器工具中的轨迹记录器开始记录。延迟跟踪器工具记录并处理例如ETL文件。
如果在步骤204记录未被启用,则过程移动到步骤206。在步骤206,当延迟跟踪器工具在所选进程中看到一延迟时,事件分析工具显示该延迟。延迟可被实况地显示在图表或时间线上,例如在它们发生和/或被检测到时。尽管跟踪仍然是活动的,但此时延迟并不被进一步处理。
在步骤207,用户选择“停止跟踪”,而在步骤208,事件分析工具再次判断记录是否被启用。如果记录未被启用,则事件分析工具在步骤209结束实况模式,不再更新或分析延迟事件。
如果记录被启用,则在步骤210,记录的内核、运行时以及运行终了轨迹被合并到单个ETL日志文件中。在步骤211,事件分析工具解析符号并分析ETL轨迹文件。在其他实施例中,符号解析可以在IDT中进行。
在步骤212,用户可选择某一延迟来进一步分析。在步骤213,事件分析工具汇总关于所选延迟的调用堆栈并显示给用户。
图3是用于记录并显示某一进程中的延迟的事件分析工具的示例显示画面300。时间线301示出观察到的延迟的类型以及每个延迟有多长。用户可通过选项302选择来查看时间线,通过选项303开始跟踪,以及通过选项304来启用记录。所选进程被标识在域305中,域306中示出选择的任何过滤器。
若干不同的延迟类型307可被显示和分析。这些延迟可与用户或设置文件中定义的某一场景相关联。每个延迟类型与时间线301上所使用的一不同的图案或颜色相关联,以标识观察到的延迟类型。例如,程序包加载延迟308和309分别在时间3:36:36与3:36:39被检测到。程序包加载延迟308持续44ms,而程序包加载延迟309持续557ms。诸如无响应延迟310、311以及解决方案加载延迟312、313之类的其他延迟在被检测到时也被显示。
每个延迟都被示为带有指示出该延迟持续多长时间的相应时间。当事件持续时间比该场景的最大设置长时,延迟被显示在时间线301上。
当跟踪结束时,例如通过用户取消对选项303的选择,然后事件分析工具开始分析轨迹文件并解析符号来向用户示出调用堆栈汇总。
图4是示出关于所选延迟的调用堆栈的事件分析工具的示例显示画面400。在显示画面400中延迟列表选项401(而不是时间线选项302)被选择,这就生成了延迟列表402。这些延迟402与所选进程403相关联。每个延迟类型404与该延迟的持续时间405一起被列出。还示出每个延迟的开始时间406和结束时间407。
在该示例中用户已经选择了延迟408,导致该延迟所涉及的具体方法的列表410。列表410指示出在所选延迟408期间什么方法被调用,使得用户能够确定什么方法与不同的延迟有关。方法以其中每个方法被调用的次序来排列。例如,在组416中,方法A是IDE的入口点;它调用了方法B,方法B调用了方法C,以此类推。当看到分叉时,例如从方法E到方法F和方法G,这指示出在延迟期间方法E调用了方法F与方法G两者且各自花费了一些时间。列411中的持续时间示出每个方法(以及该方法所调用的方法)中连头带尾花费了多少时间。此外,存在按照总延迟时间的百分比的每个方法中花费的时间的指示412。这允许用户快速地看到哪些方法贡献了大部分延迟。持续时间411以及包容性百分比412表示每个方法以及所列出的该方法所调用的全部方法(如扩展框架413中示出)中花费的时间。如果方法A是入口点,则方法A中花费延迟408的总时间的100%,当代码路径越来越接近操作要求执行的实际方法(如方法F、G)时,时间百分比下降。
当堆栈轨迹选项414被选择时,方法的列表被示出。此外,用户可选择热路径415选项,该选项指示出哪些方法占用了大部分时间。热路径方法可由火焰、星、旗或其他图标来指示出。热路径方法包括哪组方法是花费最高的或最难以执行的。在一个实施例中,热路径方法416包括花费超过总延迟时间(412)的百分之二十来执行的任何方法。热路径限制可被调整来按照用户的希望来设置为更高或更低的限制。热路径方法416指示出对所选场景最有影响的区域。热路径示出从入口点开始的哪条代码路径可能是延迟发生的原因。
在其他实施例中,可在域417中过滤关于该进程的延迟列表402。例如,用户可选择过滤器417中的特定模块,于是仅包含来自所选模块的任何活动的那些延迟将被示于列表402中。这将允许开发者确定例如他们的扩展将如何把延迟添加到进程305。
图5是示出关于所选延迟的上下文信息的事件分析工具的示例显示画面500。当用户选择事件观察选项501时,上下文信息的列表502被显示出。事件观察501在时间线(302)和延迟列表(401)两种配置中都可用。调用堆栈窗格也可以时间线(302)和延迟列表(401)两种配置来被显示。在该示例中,用户例如通过点击来选择时间线上的延迟503。上下文信息可指示出例如模块加载、盘文件读取、代码标记、键入的键等。列表502中的每个事件包括时间戳504、类型505、事件名506以及描述507。
图6例示出允许用户从事件分析工具编辑已有场景601的界面600。场景信息被提供给延迟跟踪器工具库来确定进程中要标记哪些活动。
用户可通过在列602中启用各个场景来选择监视哪些延迟事件。每个延迟事件的名称被列在列603中。被定义来标识每个延迟事件的最少延迟时间在列604中列出。每个事件的标记在列605中示出。
界面600可被用来配置设置文件,该设置文件定义了延迟跟踪器工具中可能被观察的每个场景的阈值。如果某一事件的延迟超出该阈值,则事件分析工具标记并显示该事件。
图7例示出一种合适的计算和联网环境700的示例,在该环境上可实现图1-6的示例来提供IDE、延迟跟踪器工具、事件分析工具、和/或设置文件。计算系统环境700只是合适的计算环境的一个示例,而非意在暗示对本发明的使用或功能性范围有任何限制。本发明可用众多其他通用或专用计算系统环境或配置来操作。适用于本发明的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可被实践在分布式计算环境中,分布式计算环境中任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图7,用于实现本发明的各个方面的示例性系统可以包括计算机700形式的通用计算设备。组件可包括但不限于诸如处理单元701之类的各种硬件组件、诸如系统存储器之类的数据存储702、以及将包括数据存储702在内的各种系统组件耦合到处理单元701的系统总线703。系统总线703可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机700通常包括各种计算机可读介质704。计算机可读介质704可以是能由计算机700访问的任何可用介质,并同时包含易失性和非易失性介质以及可移动、不可移动介质,但不包括传播信号。作为示例而非限制,计算机可读介质704可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可以被计算机700访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。计算机可读介质可被实现为计算机程序产品,诸如存储在计算机存储介质上的软件。
数据存储或系统存储器702包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机700中元件之间传递信息的基本例程,它通常被存储在ROM中。RAM通常包含处理单元701可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制性,数据存储702保存操作系统、应用程序、其他程序模块、和程序数据。
数据存储702还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,数据存储702可以是对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,以及对诸如CDROM或其它光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。上文所描述的并且在图7中所显示的驱动器以及它们的关联的计算机存储介质,为计算机700提供对计算机可读取的指令、数据结构、程序模块及其他数据的存储。
用户可通过用户接口705或诸如平板、电子数字化仪、话筒、键盘和/或定点设备(通常指的是鼠标、跟踪球或触摸垫)等其它输入设备输入命令和信息。其他输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。另外,语音输入、使用手或手指的手势输入、或其它自然用户接口(NUI)也可与适当的输入设备(诸如话筒、相机、平板、触摸垫、手套、或其它传感器)一起使用。这些及其他输入设备常常通过耦合到系统总线703的用户输入接口705连接到处理单元701,但是,也可以通过其他接口和总线结构,如并行端口、游戏端口、通用串行总线(USB)端口、来进行连接。监视器706或其他类型的显示设备也通过诸如视频接口之类的接口连接至系统总线703。监视器706也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备700的外壳,诸如在平板型个人计算机中。此外,诸如计算设备700等计算机还可以包括其他外围输出设备,诸如扬声器和打印机,它们可以通过输出外围接口等连接。
计算机700可使用至一个或多个远程设备(诸如远程计算机)的逻辑连接707在网络化或云计算环境中操作。远程计算机可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且一般包括上面关于计算机700所述的许多或全部元件。图7中所描述的逻辑连接包括一个或多个局域网(LAN)和一个或多个广域网(WAN),但是,也可以包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在联网或云计算环境中使用时,计算机700可通过网络接口或适配器707连接至公共或私有网络。在一些实施例中,使用调制解调器或用于在网络上建立通信的其它装置。调制解调器可以是内置或外置的,它经由网络接口707或其它适当的机制连接至系统总线703。诸如包括接口和天线的无线联网组件可通过诸如接入点或对等计算机之类的合适的设备耦合到网络。在联网环境中,相关于计算机700所示的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特定特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
Claims (10)
1.一种计算机实现的方法,包括:
从延迟跟踪器工具接收事件信息,所述事件信息与正由所述延迟跟踪器工具跟踪的进程中的延迟相关联;
记录所述事件信息;
将所述事件信息显示给用户;
接收对一事件的用户选择;以及
显示与所选事件相关联的调用堆栈。
2.如权利要求1所述的计算机实现的方法,其特征在于,进一步包括:
使用用户选择的过滤准则来过滤所述事件信息;以及
显示仅包括与所述过滤准则相关联的事件信息的经修改的事件信息。
3.如权利要求2所述的计算机实现的方法,其特征在于,所述过滤准则包括用户选择的模块,所述经修改的事件信息仅包括与所选模块相关联的延迟。
4.如权利要求2所述的计算机实现的方法,其特征在于,进一步包括:
显示仅包括与所述过滤准则相关联的信息的经修改的调用堆栈。
5.如权利要求1所述的计算机实现的方法,其特征在于,所述调用堆栈包括在所述事件期间以预定间隔采集的CPU样本。
6.如权利要求5所述的计算机实现的方法,其特征在于,所述事件是延迟,所述预定间隔是1ms。
7.如权利要求1所述的计算机实现的方法,其特征在于,进一步包括:
标记一个或多个调用堆栈条目以指示出所述调用堆栈条目与超过最小阈值的事件相关联。
8.如权利要求7所述的方法,其特征在于,所述事件是延迟,以及标记持续超过总延迟时间的所选百分比的一个或多个调用堆栈条目。
9.如权利要求1所述的计算机实现的方法,其特征在于,将所述事件信息显示给用户进一步包括:
响应于用户选择,显示表示延迟在特定时间出现的时间线,或者显示在一进程中观察到的延迟的列表。
10.一种计算机实现的方法,包括:
记录来自延迟跟踪器工具的延迟信息,所述延迟信息对应于超出场景定义中指定的最少延迟时间的事件;
按照示出延迟的按时间顺序发生的时间线或者按照延迟列表来将所述延迟信息显示给用户;
接收指示出所选延迟的用户输入;
显示关于所选延迟的调用堆栈,所述调用堆栈表示在所选延迟期间以定义的间隔采集的CPU样本;
接收指示出所选过滤器的用户输入;以及
显示仅包括与所选过滤准则相关联的延迟的经修改的延迟信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/715,879 | 2012-12-14 | ||
US13/715,879 US9064037B2 (en) | 2012-12-14 | 2012-12-14 | Automated correlation and analysis of callstack and context data |
PCT/US2013/075215 WO2014093955A2 (en) | 2012-12-14 | 2013-12-14 | Automated correlation and analysis of callstack and context data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105144117A true CN105144117A (zh) | 2015-12-09 |
CN105144117B CN105144117B (zh) | 2018-12-28 |
Family
ID=49920643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380065092.5A Active CN105144117B (zh) | 2012-12-14 | 2013-12-14 | 对调用堆栈和上下文数据的自动相关分析方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9064037B2 (zh) |
EP (1) | EP2932393B1 (zh) |
CN (1) | CN105144117B (zh) |
WO (1) | WO2014093955A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681811A (zh) * | 2016-12-08 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 基于线程池的多线程调度方法及装置 |
CN110618940A (zh) * | 2019-09-19 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 堆栈信息追踪方法、装置、计算机可读介质及计算装置 |
CN112965845A (zh) * | 2021-02-05 | 2021-06-15 | 网宿科技股份有限公司 | 延迟分析方法、电子设备及存储介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361202B2 (en) * | 2013-07-18 | 2016-06-07 | International Business Machines Corporation | Filtering system noises in parallel computer systems during thread synchronization |
US10147158B2 (en) | 2014-12-13 | 2018-12-04 | Microsoft Technology Licensing, Llc | Frame invalidation control with causality attribution |
US10579446B2 (en) * | 2018-04-13 | 2020-03-03 | Microsoft Technology Licensing, Llc | Per-request event detection to improve request-response latency |
US10664378B2 (en) | 2018-06-21 | 2020-05-26 | International Business Machines Corporation | Visualizing a user-centric stack frame graph |
CN110618933B (zh) * | 2019-08-15 | 2021-05-11 | 华为技术有限公司 | 性能分析方法与系统、电子设备与存储介质 |
US11922195B2 (en) | 2021-04-07 | 2024-03-05 | Microsoft Technology Licensing, Llc | Embeddable notebook access support |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006113111A2 (en) * | 2005-04-15 | 2006-10-26 | Microsoft Corporation | Method and apparatus for performance analysis on a software program |
US7379999B1 (en) * | 2003-10-15 | 2008-05-27 | Microsoft Corporation | On-line service/application monitoring and reporting system |
US20090241095A1 (en) * | 2008-03-19 | 2009-09-24 | International Business Machines Corporation | Call Stack Sampling for Threads Having Latencies Exceeding a Threshold |
US20100107014A1 (en) * | 2008-10-29 | 2010-04-29 | Aternity Inc. | Real time monitoring of computer for determining speed of various processes |
US7730460B1 (en) * | 2004-06-18 | 2010-06-01 | Apple Inc. | Code execution visualization using software fingerprinting |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6779180B1 (en) * | 1998-09-16 | 2004-08-17 | International Business Machines Corporation | Apparatus and method for preventing stack overflow from synchronous completion of asynchronous functions |
US7546587B2 (en) * | 2004-03-01 | 2009-06-09 | Microsoft Corporation | Run-time call stack verification |
US8528086B1 (en) * | 2004-04-01 | 2013-09-03 | Fireeye, Inc. | System and method of detecting computer worms |
US8015552B1 (en) | 2004-07-23 | 2011-09-06 | Green Hills Software, Inc. | Post-execution software debugger with coverage display |
US8839271B2 (en) * | 2006-10-11 | 2014-09-16 | International Business Machines Corporation | Call stack sampling to obtain information for analyzing idle states in a data processing system |
US8032867B2 (en) | 2007-06-05 | 2011-10-04 | Computer Associates Think, Inc. | Programmatic root cause analysis for application performance management |
US8464221B2 (en) | 2009-06-16 | 2013-06-11 | Microsoft Corporation | Visualization tool for system tracing infrastructure events |
US8166022B2 (en) | 2009-08-18 | 2012-04-24 | International Business Machines Corporation | System, method, and apparatus for parallelizing query optimization |
US9430353B2 (en) | 2009-10-26 | 2016-08-30 | Microsoft Technology Licensing, Llc | Analysis and visualization of concurrent thread execution on processor cores |
CN102486731B (zh) * | 2009-11-30 | 2015-12-09 | 国际商业机器公司 | 增强软件的软件调用栈的可视化的方法、设备和系统 |
US20120159449A1 (en) * | 2010-12-15 | 2012-06-21 | International Business Machines Corporation | Call Stack Inspection For A Thread Of Execution |
US9389936B2 (en) * | 2011-09-23 | 2016-07-12 | Microsoft Technology Licensing, Llc. | Monitoring the responsiveness of a user interface |
US8719791B1 (en) * | 2012-05-31 | 2014-05-06 | Google Inc. | Display of aggregated stack traces in a source code viewer |
US9195569B2 (en) * | 2013-01-28 | 2015-11-24 | Nintendo Co., Ltd. | System and method to identify code execution rhythms |
-
2012
- 2012-12-14 US US13/715,879 patent/US9064037B2/en active Active
-
2013
- 2013-12-14 WO PCT/US2013/075215 patent/WO2014093955A2/en active Application Filing
- 2013-12-14 CN CN201380065092.5A patent/CN105144117B/zh active Active
- 2013-12-14 EP EP13818586.3A patent/EP2932393B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7379999B1 (en) * | 2003-10-15 | 2008-05-27 | Microsoft Corporation | On-line service/application monitoring and reporting system |
US7730460B1 (en) * | 2004-06-18 | 2010-06-01 | Apple Inc. | Code execution visualization using software fingerprinting |
WO2006113111A2 (en) * | 2005-04-15 | 2006-10-26 | Microsoft Corporation | Method and apparatus for performance analysis on a software program |
CN101208659A (zh) * | 2005-04-15 | 2008-06-25 | 微软公司 | 用于对软件程序进行性能分析的方法和装置 |
US20090241095A1 (en) * | 2008-03-19 | 2009-09-24 | International Business Machines Corporation | Call Stack Sampling for Threads Having Latencies Exceeding a Threshold |
US20100107014A1 (en) * | 2008-10-29 | 2010-04-29 | Aternity Inc. | Real time monitoring of computer for determining speed of various processes |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106681811A (zh) * | 2016-12-08 | 2017-05-17 | 腾讯科技(深圳)有限公司 | 基于线程池的多线程调度方法及装置 |
CN110618940A (zh) * | 2019-09-19 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 堆栈信息追踪方法、装置、计算机可读介质及计算装置 |
CN110618940B (zh) * | 2019-09-19 | 2024-02-06 | 腾讯科技(深圳)有限公司 | 堆栈信息追踪方法、装置、计算机可读介质及计算装置 |
CN112965845A (zh) * | 2021-02-05 | 2021-06-15 | 网宿科技股份有限公司 | 延迟分析方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US9064037B2 (en) | 2015-06-23 |
US20140173359A1 (en) | 2014-06-19 |
EP2932393A2 (en) | 2015-10-21 |
EP2932393B1 (en) | 2019-05-08 |
WO2014093955A3 (en) | 2014-12-11 |
CN105144117B (zh) | 2018-12-28 |
WO2014093955A2 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105144117A (zh) | 对调用堆栈和上下文数据的自动相关和分析 | |
US20200250024A1 (en) | High-volume distributed script error handling | |
US8332765B2 (en) | Problem reporting system based on user interface interactions | |
US9448908B2 (en) | System and method for model based session management | |
US9262260B2 (en) | Information processing apparatus, information processing method, and recording medium | |
US20100169792A1 (en) | Web and visual content interaction analytics | |
JP5134684B2 (ja) | ウェブページ構造分析を通したウェブサイトの情報把握方法 | |
EP2686771B1 (en) | Usability testing | |
US20160274997A1 (en) | End user monitoring to automate issue tracking | |
US20130346917A1 (en) | Client application analytics | |
CN105556482A (zh) | 监视移动应用性能 | |
US8949672B1 (en) | Analyzing a dump file from a data storage device together with debug history to diagnose/resolve programming errors | |
US20140074452A1 (en) | System and method for automatic modeling of an application | |
JP5454363B2 (ja) | 解析プログラム、解析装置および解析方法 | |
CN107239389A (zh) | 一种在混合app中确定用户操作记录的方法及装置 | |
US20150006961A1 (en) | Capturing trace information using annotated trace output | |
CN111552633A (zh) | 接口的异常调用测试方法、装置、计算机设备及存储介质 | |
CN110610089B (zh) | 用户行为模拟方法、装置及计算机设备 | |
US20190004923A1 (en) | Non-transitory computer-readable storage medium, display control method, and display control device | |
WO2017164856A1 (en) | Comparable user interface object identifications | |
CN113792341A (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
CN108985053B (zh) | 分布式数据处理方法及装置 | |
US20110218841A1 (en) | Back office process monitoring and analysis | |
US12045295B2 (en) | Indexable and searchable replay of website user behavior | |
US20140129615A1 (en) | System for automated data measurement and analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |