CN101208659A - 用于对软件程序进行性能分析的方法和装置 - Google Patents
用于对软件程序进行性能分析的方法和装置 Download PDFInfo
- Publication number
- CN101208659A CN101208659A CNA2006800090478A CN200680009047A CN101208659A CN 101208659 A CN101208659 A CN 101208659A CN A2006800090478 A CNA2006800090478 A CN A2006800090478A CN 200680009047 A CN200680009047 A CN 200680009047A CN 101208659 A CN101208659 A CN 101208659A
- Authority
- CN
- China
- Prior art keywords
- thread
- software program
- threads
- testing
- incident
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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
-
- 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
- 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
- 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)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于显示软件的性能测试信息的系统(140)。该系统包括以允许容易地标识性能问题及其原因的格式来显示信息的图形用户接口(210)。该接口包括描绘正在测试的程序在执行期间的活动程度(222,224,226)的时间线视图(220)。程序执行期间的时间子范围中的事件可使用揭示组成该程序的各线程的交互的信息来被显示。可在其它显示域中显示附加信息,包括文字信息(264)。所显示的信息当中许多是以图形表示的,这使性能工程师能够迅速地标识问题区来进一步调查。
Description
发明背景
1.发明领域
本发明一般涉及软件程序开发,尤其涉及对软件程序的性能分析。
2.相关技术的讨论
一般在软件程序的开发期间对其进行测试。传统上,测试被用于验证软件程序是否执行计划的功能。随着软件程序变得越来越复杂,性能测试变成开发周期中越来越重要的组成部分。性能测试支持“性能工程设计”活动,在此期间程序中导致程序执行延迟的那些部分被标识并被重写以减少执行程序所需的时间。
性能测试通常通过将“探针”插入正在测试的程序内来执行。探针是在执行时将数据写入日志文件的简单函数。然后可分析日志文件中的数据以确定程序运行的各个特性。
传统的性能分析工具使用日志文件中的数据来呈现正在测试的软件程序的执行的汇总的视图。例如,日志文件中的数据可被用于确定正在测试的软件程序中每一函数被调用的次数。这样的信息可例如向性能工程师揭示特定的函数处于执行次数多于计划的循环中。这样的观察可例如指示,可通过重构程序减少该循环执行的次数来提高该程序的性能。
数据的汇总视图也可指示每一函数执行的平均时间量。如果一函数的平均执行时间大大超过预期的执行时间,则性能工程师可调查是否有某个事件妨碍了该函数的执行。
已采用了呈现关于正在测试的软件程序的性能数据以便性能工程师审阅的工具。这样的工具例如允许性能工程师从多种类型的汇总数据中进行选择,使得性能工程师可检查正在测试的软件程序的不同方面。这样的工具也可包括时间线视图,这允许性能工程师查看正在测试的软件程序的活动程度。
发明概述
本发明涉及用于提供关于正在测试的软件程序的性能数据的用户接口。该用户接口允许性能工程师或其他用户操纵对性能数据的呈现来更容易地标识正在测试的软件程序中可能引起性能问题的部分。
在一个方面中,本发明涉及显示关于正在测试的软件程序的性能信息的方法。该方法涉及在第一显示区中显示正在测试的软件程序执行的时间范围的表示。通过用户接口设备接收指示第一显示区中所显示的时间范围中所指示的部分的用户输入。在第二显示区中显示多个图形指示符。每一图形指示符表示多个线程之一在该时间范围的子范围期间的执行中的各个事件。子范围包括第一显示区中所表示的时间范围的所指示部分。
在另一方面中,本发明涉及其上呈现正在测试的软件程序中多个线程的性能信息的显示设备。性能信息对多个线程中的每一个包括表示该线程的运行的线程区。线程区具有至少一个指示符,每一指示符表示该线程的一运行事件,多个线程的线程区被如此安置,使得多个线程的线程区中的指示符图形地示出这多个线程中的运行事件在时间上的关联。
在另一方面中,本发明涉及含有用于分析正在测试的软件程序的性能的计算机可执行组件的计算机可读介质,正在测试的软件程序适于以多个线程执行。计算机可执行组件包含,数据收集组件,适于收集关于正在测试的软件程序中的多个线程的执行的数据;分析组件,适于分析所收集的数据以得到关于该多个线程的执行信息;以及报告组件,适于以人类可感知的形式显示关于这多个线程的至少一部分的执行信息,人类可感知形式包括对应于该部分中多个线程中的每一个的作为时间的函数的执行信息的图形表示,该部分中多个线程中的每一个的图形表示以使该部分中多个线程中的每一个中的各个事件的时间能够相关的格式被显示。
附图简述
附图不旨在被按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的标号表示。为清楚起见,不是每个组件在每张附图中均被标号。附图中:
图1是示出开发环境的略图;
图2是图1的开发环境中的用户接口的略图;
图3是图2的用户接口处于替换运行状态中的略图;
图4是图1的开发环境中的用户接口的替换实施例;以及
图5是图4的用户接口处于替换运行状态中的略图。
详细描述
提供了一种可用于性能分析的改进的性能分析工具。该工具以多种格式呈现性能分析信息并允许配置以不同格式呈现数据的显示区。可配置性使得诸如性能工程师的用户能够标识正在测试的程序中发生性能问题的点,并能够“向下钻取”来标识性能问题的原因。
图1以框图形式示出了可在其中使用这样的工具的开发环境100。开发环境100可例如在计算机工作站中或服务器上、或一组联网计算机上、或能够执行程序的任何其它合适的平台上创建。
正在测试的程序110此处被示为由多个进程组成。在图1的示例中,示出了进程1121、1122和1123。正在测试的程序110中的进程数目不是本发明的限制。然而,本发明对分析正在测试的包含众多进程的程序的性能最为有用。
每一进程可执行一“线程”。线程是程序的一部分,在大多数情况中它在进程中执行。进程和线程从而是紧密相关的概念。每一线程有其自己的函数调用和其它程序事件序列。
各独立的进程可在各独立的处理器上执行。然而,各独立的进程可在单个处理器上创建。处理器资源在进程之间共享,在任何给定时间活动的所有的线程轮流消耗处理器周期。多个线程可在单个处理器上“虚拟”活动,即使一次只能有一个进程消耗处理器周期。
相反,无论可用的处理器的数量是多少,线程均有可能会被“阻塞”。多进程系统包括供在各独立的进程中执行的进程交换数据的机制。如果一线程需要与另一线程交换数据,而这两个线程可能没有准备好同时交换数据。从而,一个线程可能需要等待,直到另一线程执行到准备好交换数据的那个点。当线程等待另一线程交换数据或执行其它某个功能时,该线程被称为“被阻塞”。线程的“阻塞”是可能影响程序性能的重要的事件。
在图1中所示的示例中,进程1121、1122和1123中的每一个使用探针函数测试,诸如现有技术中可见的那样。当正在测试的程序110执行时,探针函数将数据写入数据文件120内。在此实施例中,数据文件120被组织为多个缓冲区1221、1222...1125。在此实施例中,为正在测试的程序110中的每一进程提供一个缓冲区。
当正在测试的程序110执行时,嵌入每一进程1121、1122和1123的探针被执行。各独立的进程中的探针将数据值写入与该进程相关联的缓冲区内。以此方式,每一缓冲区包1221、1222和1223包含当进程执行时进程内发生的事件的有序列表。由于线程与进程之间的联系,该信息也可用于标识事件所关联的线程。在所示实施例中,被写入缓冲区内的每一事件包括对事件及其发生时间的指示。
在所示实施例中,正在测试的程序110被构造成通过预定的应用程序编程接口(API)的调用使事件被记录在缓冲区中。在所示示例中,通过预定API的调用被记录在缓冲区1224中。缓冲区1224存储标识API被调用的部分、进行调用的进程以及进行调用的时间的信息。
正在测试的程序110在包括操作系统114的平台上执行。在此实施例中,操作系统114也被配置成将各个事件写入数据文件120。预定事件,诸如异常条件或磁盘访问,可在操作系统114内被编程以将事件的指示写入数据文件120内。当这样的事件发生时,该指示被写入缓冲区1225。对事件的指示可包括所发生的具体事件的标识符、它发生的时间、以及使事件发生的线程的进程。
图1提供了在正在测试的软件程序的执行期间可捕捉的各种类型的事件的示例。根据本发明的一个实施例,可按照容易使用的方式向人类用户显示多种类型的事件。例如,SQL事件、OS内核事件、web服务器事件或任何其它所需类型的事件均可在数据文件120中捕捉以便进一步分析和显示。
在所示实施例中,在程序110执行之后分析存储在数据文件120中的数据。该分析由分析程序130执行。在所述实施例中,分析程序130使存储在每一缓冲区1221...1225中的事件的时间相关联。可有各种方法用于使每一缓冲区中的事件的时间相关联。在所述实施例中,创建了索引。索引指示每一缓冲区中的哪个条目对应于正在测试的程序110的执行期间的特定时间。以此方式,当所分析的数据被处理时,分析程序130可迅速访问来自每一缓冲区的对应于正在测试的程序110的执行期间中特定时间点的数据。可自适应地创建索引,使得索引可表示对每一缓冲区中对应于特定时间发生的事件的位置的估计。当数据文件120被处理时,这些估计可被更新。然而,可使用形成索引的任何合适的方式。
对存储在数据文件120中的数据进行索引允许分析程序130快速格式化数据以便以相对于同一时间框架示出不同进程内的各个事件的方式在用户接口140上显示。为了使不同进程或线程中的事件相关联,不需相对于绝对标准来跟踪时间。相反,可相对于正在测试的程序110的执行起始或任何其它方便的时间点来跟踪时间。时间可例如按照正在测试的程序110在其上执行的处理器内部的时钟的走时来被跟踪。
在所示实施例中,用户接口140是计算机工作站的一部分。然而,可采用任何合适的用户接口设备。在此示例中,用户接口140包括提供输出机制的显示器142。显示器142可例如是允许将输出提供给人类用户的CRT或TFT显示器。可使用其它形式的输出设备。例如,可将图形输出打印或投影到屏幕上。或者,输出可被传递给其它程序或系统来在使用之间进一步分析以便向用户提供信息。
用户接口140还包括用户接口选择设备。用户接口选择设备允许用户通过用户接口140提供可控制分析程序130的运行的输入。在所示实施例中,用户接口140包括可用于经由用户接口140提供用户输入的鼠标146。与传统的台式计算机一样,人类用户可操纵鼠标将光标置于显示器142上,并操作鼠标146上的按钮(即,“点击”)来选择作为显示器142上的输入项。用户接口140可基于按钮被按下时所处的位置来调用程序对象。
键盘144也可独自或结合鼠标146用作用户接口选择设备。人类用户可使用键盘144来输入命令、参数或其它适当的信息来经由用户接口140提供输入。在所述实施例中,用户输入控制分析程序130来在显示器142上提供期望的显示。
图2示出了可由分析程序130创建且显示在显示器142上以将正在测试的软件程序执行期间所收集的数据呈现给人类用户的示例用户接口210。在图2的实施例中,用户接口210包含多个区域。在所述实施例中,这些区域被用于对逻辑相关的信息进行分组。例如,菜单栏212用作定位用户可访问来控制用户接口210的功能的命令的区域。包括在菜单栏210中的命令可以是如在传统图形用户接口中使用的命令,诸如那些打开或关闭特定文件的命令等。命令也可控制用户接口210的其余部分中所显示的信息,或可控制用户接口专用的用于显示从正在测试的软件程序的执行中所收集的性能数据的操作。
在图2所示的实施例中,用户接口210包含其中显示关于正在测试的软件程序110的执行的不同、但逻辑相关的类型的信息的三个区域。这些区域包括时间线域220、线程视图域230和文本视图域260。
时间线域220包括正在测试的软件程序110执行期间活动程度的图形表示。在此实施例中,活动程度由时间线域220内的阴影示出。例如,区域222比区域224的阴影少。这种阴影示出,与区域224相比,由区域222表示的时间期间发生的活动较少,指示区域222所表示的时间期间的活动较少。
在此示例中,正在测试的软件程序110的整个执行由一从左至右移动的时间线表示。可使用任何合适形式的活动表示。例如,可使用不同的颜色来表示不同的活动程度。或者,由时间线域220表示的时间线可被表示为直方图,时间线的显示高度指示正在测试的软件程序110的执行期间任何特定时间的活动程度。
可按照任何合适的方式来度量活动程度。跟踪正在执行的程序所消耗的CPU时间的百分比的进程监视器在本领域中已知,且可例如被用于创建用来生成诸如220那样指示活动程度的时间线域的数据。在此实施例中,时间线域220表示执行正在测试的软件程序110的一部分的所有进程1121、1122和1123的汇总活动。在此实施例中,它不包括关于执行属于操作系统114的一部分的程序的进程中的活动的信息。
时间线域220包括时间指示符226。时间指示符226是用户可操作的控件。例如,时间指示符226可由用户操作鼠标146(图1)来选择。用户然后可操作鼠标146使用如程序接口中常用的拖放动作将时间指示符226滑动到时间线域220上所需的关注点。以此方式,用户可指定数据文件120(图1)中所存储的数据的一部分以便进一步检查。具体地,为时间指示符226所指定的执行时间的子范围收集的数据可被更详细地显示在线程视图域230中。
如图所示,时间指示符226指示单个时间。可以有用户籍此可指定要在线程视图域230中显示的时间范围的各个实施例。在此示例中,线程视图域230包含关于正在测试的软件程序110在以时间指示符226所指示的时间为中心的时间子范围中的运行的信息。然而,可使用任何合适的惯例。例如,时间线域220可包括多个指示符,一个时间指示符标识要在线程视图域230中显示的区间的起点,第二时间指示符标识要在线程视图域230中显示的结束时间。
无论用于标识要在线程视图域230中显示的时间的子范围的具体机制是什么,线程视图域230均包含在所选区间中作为正在测试的软件程序110的一部分执行的线程内的事件的图形表示。在图2所示的实施例中,每一线程由一个区域表示,此处被示为轨迹(trace)条2401、2402...2409。此处,示出了九个线程。为其示出事件的线程的数目不是对本发明的限制。
每一线程内的事件在相应的轨迹条中图形示出。示出了多种类型的事件。事件的数目和类型仅用于说明,且可显示任何数目或类型的事件。
在图2所示的实施例中,每一轨迹条2401、2402...2409指示其相应线程存在的时间。在正在测试的程序110的操作中,线程可在各个时间开始和结束,这可在线程视图域230中图形地表示。
此外,即使线程存在,它也可能仅在其存在的时间的一部分内活动。可使用对线程活动性的任何合适的度量。然而,在所示实施例中,当线程有操作要执行时它被认为是“活动”的,即使该线程由于在具有有限数目的处理器的系统中多个进程的调度而实际并没有在主动地消耗CPU周期。在用户接口210中,使轨迹条2401、2402...2409视觉地指示相应的线程活动或被阻塞的时期。可使用任何合适的方法来标识活动或阻塞时期。在此例中,诸如活动指示符242等活动指示符被叠加在轨迹条上以指示相应线程活动的时间。相反地,诸如在阻塞区间254中那样没有活动指示符示出相应的线程在特定的区间里被阻塞。
也可在线程视图域230中图形指示其它事件。在此示例中,示出了诸如244的用户标记。如上结合图1所述,可记录正在测试的软件程序110内的事件。在此示例中,每一用户标记244是对正在测试的软件程序110的API内的函数进行了调用的图形指示。系统标记250类似地指示操作系统114所跟踪的事件之一的发生。在此示例中,系统标记250在视觉上与用户标记224有所区别。颜色、形状或位置可用于区分不同类型的标记。在图2中指示了多个用户标记。用户标记均由同一图形符号指示,这可表示同一事件的多次发生。不同类型的用户标记可由相同或不同的图形符号表示。
线程视图域230包括时间标尺232。每一轨迹条2401、2402...2409内的事件与时间标尺232相关联。轨迹条内的事件从而彼此相关联。通过在线程视图域230上左右地阅读,可比较同一时间在多个线程内发生的事件。通过向下阅读线程视图域230,事件的序列将是显而易见的。
时间标尺232显示时间线域220所表示的时间的子范围。所显示的特定的子范围可由用户操纵时间指示符226来选择。此外,线程视图域230包括滚动条252。滚动条提供选择用于显示的时间子范围的替换机制。滚动条252可以是现在已知或今后开发的用于在图形用户接口中使用的类型的控件。通过使用滚动条252,用户可将线程视图域230中所显示的时间子范围移换成较早的时间或较晚的时间。在此实施例中,时间指示符226和滚动条252是相关联的控件,意味着调节时间指示符226或滚动条252中的任一个均将调节线程视图域230中所显示的时间子范围的中心点。
能够以相关联方式显示线程内的事件允许人类用户容易地标识程序110内当正在测试的程序110执行时可能引起性能问题的那些部分。例如,图2指示线程3在相对较短的时间段内活动,然后变为非活动的。在非活动的期间内,线程4变为活动并持续相对较长时间。线程4然后变为非活动,而线程3再次变为活动。这样的模式例如可向人类用户指示,线程3在等待线程4时被阻塞。这样的模式可指示,通过调查线程4执行所需的时间或线程3实际上是否是为等待线程4而被阻塞,程序的总体性能可被提高。仅查看汇总的统计数据,这样的情形可能不是显而易见的。汇总的统计数据可揭示线程3具有较长的执行时间,但不会揭示原因。
图2示出了用户接口210包括允许获取关于各个线程的执行的附加信息的文本视图域260。在所示实施例中,线程3和线程4在文本视图域260中被突出显示。在所述实施例中,用户选择在文本视图域260中要显示哪些域,但也可使用任何合适的方法来选择要在文本域260中显示的线程。例如,用户可使用鼠标146上的按钮来访问线程视图域220中所示的线程之一的属性菜单,并在该菜单中选择这些线程应被显示在文本视图域260中。作为另一示例,用户可使用鼠标146在文本视图域260内拖放表示所需域的轨迹条。
为在文本域260中显示而选择的每一线程由诸如2641或2642的事件轨迹表示。每一事件轨迹包括事件轨迹所描绘的线程内的事件的清单。在此示例中,事件轨迹2641或2642中所列事件表示线程作出的函数调用,以及由线程启动的诸如对特定API的调用或对操作系统实用程序的访问等标记事件。然而,可显示任何所需类型的事件。例如,可取代图2中所示的事件或除其以外显示SQL事件、OS内核事件、web服务器事件等。
文本视图域260包括时间标尺262。时间标尺262指示文本视图域260中所描绘的事件轨迹描述了正在测试的软件程序110执行的时间子范围内的事件。文本视图域260中所描绘的时间子范围可以与线程视图域230中所描绘的子范围相同。然而,在图2的示例中,文本视图域260包括可由用户输入操纵以调节文本视图域260中所描绘的子范围的中心点的滚动条264。
时间标尺262此处被示为不连续的。在所示实施例中,仅当此时有一事件可供显示时才在文本视图域260建立一条目。以此方式,连贯的事件彼此相邻显示,而不考虑这些事件发生的时间间隙。
在图2的示例中,线程视图域230和文本视图域260被同时显示,但具有不同的大小。在此实施例中,这些域被实现为如常规用户接口中所使用的显示区,且可按照任何合适的方式被重定大小以增加或减少每一窗口中所示的数据量。而且,所示实施例在显示器上同时示出时间线域220、文本视图域260和轨迹视图域230。每一个可在单独的时间显示,或这些域可用任何所需组合同时显示。
文本视图域260可便于分析正在测试的软件程序110的性能。在所示示例中,线程3的事件轨迹2641确认,在时间6处,线程3正等待另一线程。文本视图域260中可见的附加细节示出线程3在时间5处执行的写数据函数之后等待。事件轨迹2642指示线程4正执行与写数据相关联的各种操作。事件轨迹2642指示,从时间10开始,线程4花费大量时间来执行_STRLEN函数。该信息可允许人类用户迅速标识正在测试的程序110的性能问题。
通过显示程序执行的线程视图和事件轨迹两者,性能工程师可迅速标识问题的来源。可使用图形表示来标识要进一步调查的特定区域,且这些特定区域的细节可以文字形式提供。此外,更改每一域中所示的时间值的子范围的能力还有助于使性能工程师易于标识问题。例如,线程3和4在时间23处示出类似的模式,指示在时间23处,线程3可能也在对线程4执行的函数进行调用。然而,在时间23处示出的实例中,线程4的活动时间比时间5处所示的实例中的短得多。性能数据的这种模式可指示,当线程3调用写数据函数时,有些时候比起其它时候,操作会花费长得多的时间。这样的性能模式使得难以从汇总的数据标识哪一函数是特定性能问题的来源。然而,通过允许用户在可选子范围上检查不同线程中在时间上相关的事件,可更容易地标识性能问题。
图3示出了用户接口210的另一特征。在图3所示示例中,展开了线程视图域230的时间标尺232。在该图示中,其中显示线程视图域230的窗口与图2中的大小一样,但时间标尺232所覆盖的子范围约为图2所示的1/10。结果,以更高的分辨率显示了线程视图域230中所示的线程内的事件。时间标尺232的分辨率可例如基于用户输入来调节。用户可例如使用鼠标146(图1)将光标置于时间标尺232上,并右击该域以打开属性对话框或允许用户输入指定时间标尺232的所需分辨率的信息的其它控件。然而,可使用提供输入的任何合适的方法来指定时间标尺。
图3示出了与文本视图域260相关联的时间标尺262也具有可编程的分辨率。在图3的示例中,时间标尺262的分辨率与时间标尺232的分辨率匹配。然而,可使用任何合适的手段来设置时间标尺262的分辨率,且时间标尺262的分辨率不必与时间标尺232的分辨率匹配。
图3示出了可通过改变诸如232或262的时间标尺的分辨率来实现的优点。在图2所示的分辨率下,线程4显现为在函数_STRLEN上花费长时间。使用图3所示的分辨率,可看到线程4在函数_STRLEN内花费的时间的一部分花费在调用诸如_funcl的其它函数上。
图3还示出用户接口210的另一方面。通过操纵鼠标146(图1),光标312可被置于一事件的任何图形表示上。可获取关于用户接口210中图形描绘的每一事件的附件信息。在图3的示例中,用户将光标312置于标记344上。用户可提供输入,诸如右击标记344或仅将光标“悬停”在标记344上。响应于该用户输入,分析程序130可在文本框310中提供关于该标记的附加信息。出现在文本框310中的信息可取决于用户所选的图形对象所表示的具体事件,且可在显示器上提供关于任何所需事件——包括SQL事件、OS内核事件或web服务器事件的信息。
图4示出了根据本发明的替换实施例的用户接口410。在该实施例中,文本视图域460配备诸如4301、4302和4303的多个选项卡。可通过用户接口由操纵鼠标146将光标置于选项卡上方并对其点击来选择每一选项卡。每一选项卡当其被选中时,可在文本视图域460内显示不同种类的信息。选项卡4301呈现关于诸如有时由现有技术中的性能分析系统呈现的函数的汇总信息。当被选中时,选项卡4301显示列出正在测试的软件程序110执行期间所调用的函数的列4201。相邻列提供关于列4201中所列出的每一函数的信息。例如,列4202指示正在测试的软件程序110的执行期间所记录的进入该函数的次数。列4203指示该函数内汇总的执行时间。该选项卡中所呈现的信息是汇总或统计信息,它并不以编年基准来示出事件。
当选项卡4302被选中时,它可显示类似于现有技术的性能分析系统中所显示的调用树的一调用树。可由性能分析系统生成的、不论是现在已知还是在今后开发的任何其它类型的数据均可通过提供可被选中来访问该数据的选项卡选择性地为人类用户显示。可激活选项卡4303来提供诸如图3中所描绘的事件轨迹。
图4示出了用户接口410的附加方面。在此示例中,线程视图域230正示出在图2中所示的时间子范围之后的时间子范围。从而,时间指示符226较之图2出现在时间线域220中更靠右方。
图5示出用户接口410的又一方面。可基于用户输入来选择线程视图域230中所表示的线程。允许用户选择线程通过允许用户在不同的轨迹中并置的事件图形表示来推动标识性能问题的过程。以此方式,用户可标识线程之间的依赖关系,并标识由这些依赖关系所引起的性能问题。
图5给出了可用于允许用户选择用于显示的线程的一种机制的示例。在此示例中,用户接口410在菜单栏212上包括选择区510。选择区510可被实现为如传统上在图形用户接口中所使用的菜单项,当其被选中时将打开列表框512。
列表框512包括正在测试的程序110中的线程的列表,每一个旁边均带有一个复选框。每一复选框进而是当被选中时使相应线程被包括在线程视图窗口230中所显示的线程列表中的控件。
线程选择的其它方面也可通过用户接口410中的控件来实现。例如,控件可允许用户指定线程在线程视图窗口230中的排序。
上述特征向用户提供以便于容易地理解多线程程序的动态交互的方式组织关于正在测试的程序的性能数据的能力。它提供多层向下钻取,这允许性能工程师或其它用户使用有效的过程来对程序进行性能工程设计。在典型的情形中,该过程可包括使用时间线域220来标识程序执行期间值得进一步调查的子区域。例如,可标识并进一步调查其中发生密集活动或非常少活动的子区域。
一旦选择了要进一步研究的子区域之后,可检查该子区域中的具体线程。用户可调节线程视图域230中要显示的时间标尺,以更好地标识单个线程内的各点或是线程间交互的组合减慢程序执行的点。线程视图域230中的视觉指示符,诸如标记和活动条可引导用户标识问题区。
用户然后可通过选择要显示在文本视图窗口460中的某些线程来获取关于这些线程的具体交互的更详细的信息。可按照编年的格式呈现事件,或可呈现函数或其它程序元素的汇总数据。
显示区如在众多图形用户接口中常见的那样可打开、关闭、最小化或在显示屏上重新放置使得用户可自定义显示的外观。
可按照无论是现在已知还是今后开发的任何合适的方式,来实现用户接口中的控件。例如,软件开发环境通常具有允许菜单项被包括在程序的图形用户接口中的可扩展接口。此外,这样的开发环境也允许具有为应用程序定制的动作的预定义控件被包括到图形用户接口内。诸如滚动条、文本框以及下拉式列表的控件均是当前已知的用于图形用户接口中的控件的示例,且可例如被实现为Active-X对象。
在操作中,可按照任何合适的方式生成在图形用户接口上所显示的信息。如上所述,在缓冲区中收集关于事件的信息。对缓冲区进行索引使得能够容易地处理信息。如本领域中已知的,分析程序130可计算汇总数据。分析程序130也可使用缓冲区中按时间排序的信息来标识信号通知开始和结束的事件。
分析程序可以是使用诸如C++等任何合适的程序设计语言来准备的程序。它可被存储在与任何合适的处理器相关联的计算机可读介质中,这些处理器诸如有与性能工程师所使用的工作站相关联的处理器。
至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。
这样的更改、修改和改进旨在是本公开的一部分,且旨在处于本发明的精神和范围内。从而,前述描述和附图仅用作示例。
可按照众多方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件或其组合来实现各实施例。当使用软件实现时,软件代码可在无论是在单个计算机中提供的还是在多个计算机之间分布的任何合适的处理器或处理器的集合上执行。
而且,此处略述的各种方法或过程可被编码为可在采用各种操作系统或平台中任何一种的一个或多个处理器上执行的软件。此外,可使用多种合适的程序设计语言和/或常规程序设计或脚本工具中的任何一种来编写这样的软件,它们且可被编译为可执行机器语言代码。
在此方面,本发明可被具体化为编码了一个或多个程序的一个或多个计算机可读介质(例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带等),当这些程序在一个或多个计算机或其它处理器上执行时,它们执行实现本发明上述各个实施例的方法。这一个或多个计算机可读介质可以是可移动的,使得其上存储的程序可被加载到一个或多个不同的计算机或其它处理器上以便实现本发明上述的各个方面。
此处以一般的意义使用术语“程序”,来指可被用来对计算机或其它处理器编程以实现本发明上述的各个方面的任何类型的计算机代码或指令集。此外,应理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而可以模块化的方式分布在多个不同的计算机或处理器之间以实现本发明的各方面。
本发明的各个方面可单独、组合或使用未在前述实施例中特别讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图中所示的组件的细节和安排。例如,一个实施例中描述的各方面可使用任何方式与另一实施例中描述的各方面组合。
在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与具有同一名字(除序数词的使用之外)的另一元素区分开的标签以区分各权利要求元素。
而且,此处所用的短语和术语是为描述起见而不应被认为是限制。此处对“包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其它项目。
Claims (20)
1.在含有包括显示器和用户接口设备的图形用户接口的计算机系统中,一种显示关于正在测试的软件程序的性能信息的方法,所述正在测试的软件程序适于在多个各自适于执行的线程中执行,所述方法包括以下步骤:
a)在第一显示区中显示所述正在测试的软件程序执行的时间范围的表示;
b)通过所述用户接口设备接收指示所述第一显示区中所显示的所述时间范围的指示部分的用户输入;以及
c)在第二显示区中显示多个图形指示符,每一图形指示符表示所述多个线程之一在所述时间范围的子范围期间的执行中的事件,所述子范围包括所述第一显示区中所表示的所述时间范围的所述指示部分。
2.如权利要求1所述的方法,其特征在于,
a)所述第一显示区中的时间范围的表示包括图形表示;以及
b)所述用户接口设备包括定点设备,且接收指示所述时间范围的指示部分的用户输入包括感知所述用户使用了所述定点设备来拖曳所述时间范围的一部分的指示符,并将其放在所述时间范围的所述图形表示的一位置上。
3.如权利要求1所述的方法,其特征在于,所述正在测试的软件程序以一活动程度执行,且所述第一显示区还包括所述正在测试的软件程序的执行的活动程度的图形表示。
4.如权利要求1所述的方法,其特征在于,还包括接收指示所述第二显示区的时间标尺的用户输入,以及响应于所述指示时间标尺的用户输入调节所述子范围。
5.如权利要求4所述的方法,其特征在于,所述第二显示区还包括滚动条,并且所述方法还包括通过所述用户接口设备接收移动所述滚动条的用户输入,以及响应于所述移动滚动条的用户输入调节所述第二显示区中所显示的所述子范围。
6.如权利要求1所述的方法,其特征在于,还包括在第三显示区中显示至少一个文字表示,所述文字表示包括对由所述第二显示区中的图形标识符所表示的所述多个线程之一的执行中的各事件的指示,所述事件包括在所述线程内进行的函数调用。
7.如权利要求6所述的方法,其特征在于,所述正在测试的软件程序包括当所述正在测试的软件程序执行时被执行的函数,且在第三显示区中显示还包括:
a)接收指定要在所述第三显示区显示的所述文字信息的属性的用户输入;以及
b)响应于所述指定文字信息的属性的用户输入,选择性地显示表征所述正在测试的软件程序内各函数的执行的特征的汇总信息。
8.如权利要求1所述的方法,其特征在于,其中:
a)所述正在测试的软件程序包括在包含操作系统的平台上执行的应用程序;以及
b)显示表示事件的多个图形指示符包括,指示对所述操作系统的预定部分或对所述正在测试的软件程序的预定部分的函数调用的执行。
9.一种显示设备,该显示设备上绘制在正在测试的软件程序的执行期间运行的多个线程的性能信息,在所述正在测试的软件程序的执行期间时常发生运行事件,对于所述多个线程中的每一个,所述性能信息包括:
表示所述线程的运行的线程区,所述线程区具有至少一个指示符,每一指示符表示所述线程的一运行事件,所述多个线程中每一个的线程区被如下安置,以使得所述多个线程的线程区中的指示符图形地示出所述多个线程中的运行事件在时间上的关联。
10.如权利要求9所述的显示设备,其特征在于,所述线程区中的每一个在所述显示屏上包括一拉长的区域,且在所述多个线程区的至少一部分内,一指示符表示由所述线程区表示的线程因等待另一线程而被阻塞的时间范围。
11.如权利要求9所述的显示设备,其特征在于,所述线程区中的每一个在所述显示屏上包括一拉长的区域,且在所述多个线程区的至少一部分内,一指示符表示由所述线程区表示的线程在活动的时间范围。
12.如权利要求10所述的显示设备,其特征在于,所述多个线程区的至少其中之一包括表示从由所述线程区表示的所述线程内访问一预定函数的指示符。
13.如权利要求12所述的显示设备,其特征在于,所述正在测试的软件程序是运行在操作系统上的应用程序,并且所述预定函数包括所述应用程序内的函数。
14.如权利要求9所述的显示设备,其特征在于,还包括与所述线程区相邻的时间标尺区,所述时间标尺区与所述由指示符表示的多个线程中的所述事件在时间上相关联。
15.如权利要求9所述的显示设备,其特征在于,还包括时间线区,所述时间线区图形地指示在所述正在测试的软件程序的执行期间的处理强度。
16.如权利要求9所述的显示设备,其特征在于,还包括文字区,所述文字区包括至少一个线程的运行期间的事件的有序清单,所述事件有序清单包括函数进入、函数退出以及由SQL事件、OS内核事件和web服务器事件组成的组中的至少一个事件。
17.一种含有用于分析正在测试的软件程序的性能的计算机可执行组件的计算机可读介质,所述正在测试的软件程序适于在多个线程中执行,所述计算机可执行组件包括:
a)数据收集组件,适于收集关于所述正在测试的软件程序中的所述多个线程的执行的数据;
b)分析组件,适于分析所收集的数据以得到关于所述多个线程的执行信息;以及
c)报告组件,适于以人类可感知的形式显示关于所述多个线程的至少一部分的执行信息,所述人类可感知形式包括对应于所述部分中的多个线程中的每一个的作为时间的函数的执行信息的图形表示,所述部分中所述多个线程中的每一个的图形表示以使所述部分中所述多个线程中的每一个中的各个事件的时间能够相关联的格式被显示。
18.如权利要求17所述的计算机可读介质,其特征在于,所述报告组件适于显示所述多个线程的至少其中之一的图形表示,所述图形表示包括对何时至少一个线程在等待来自所述多个线程中的另一线程的响应时被阻塞的指示。
19.如权利要求18所述的计算机可读介质,其特征在于,所述正在测试的软件程序适于在包括可执行预定事件的操作系统的平台上执行,并且所述报告组件适于显示对所述部分中所述多个线程的至少其中之一的图形表示,所述图形表示包括对所述线程是否触发所述操作系统执行所述预定事件的指示。
20.如权利要求18所述的计算机可读介质,其特征在于,所述正在测试的软件程序包括至少一个API,所述数据收集组件适于收集指示所述API被访问的数据,并且所述报告组件适于显示所述部分中所述多个线程的至少其中之一的图形表示,所述图形表示包括对是否是从所述线程内访问了所述API的指示。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/107,464 US7698686B2 (en) | 2005-04-15 | 2005-04-15 | Method and apparatus for performance analysis on a software program |
US11/107,464 | 2005-04-15 | ||
PCT/US2006/012176 WO2006113111A2 (en) | 2005-04-15 | 2006-04-03 | Method and apparatus for performance analysis on a software program |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101208659A true CN101208659A (zh) | 2008-06-25 |
CN101208659B CN101208659B (zh) | 2012-06-13 |
Family
ID=37115641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800090478A Active CN101208659B (zh) | 2005-04-15 | 2006-04-03 | 用于对软件程序进行性能分析的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7698686B2 (zh) |
EP (1) | EP1869555B1 (zh) |
JP (1) | JP5021623B2 (zh) |
KR (1) | KR20070121649A (zh) |
CN (1) | CN101208659B (zh) |
WO (1) | WO2006113111A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136093A (zh) * | 2011-11-23 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种获取性能缺陷信息的方法及装置 |
CN104765685A (zh) * | 2015-04-01 | 2015-07-08 | 上海闻泰电子科技有限公司 | 一种内核进程图形化分析方法 |
CN104969191A (zh) * | 2013-03-13 | 2015-10-07 | 英特尔公司 | 针对性能和正确性使多线程软件程序的已记录执行可视化 |
CN105144117A (zh) * | 2012-12-14 | 2015-12-09 | 微软技术许可有限责任公司 | 对调用堆栈和上下文数据的自动相关和分析 |
CN105204981A (zh) * | 2014-05-28 | 2015-12-30 | 北京奇虎科技有限公司 | 应用性能测试方法和装置 |
CN109753414A (zh) * | 2017-11-01 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 性能数据的采集方法、展示方法、电子设备和客户端 |
CN111061621A (zh) * | 2019-12-30 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种验证程序性能的方法、装置、设备及存储介质 |
CN113282444A (zh) * | 2020-02-20 | 2021-08-20 | 北京京东振世信息技术有限公司 | 用于业务流程调试的可视化方法和装置 |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8132124B2 (en) * | 2003-03-13 | 2012-03-06 | Hewlett-Packard Development Company, L.P. | Method and system for representing Web service activity through a user interface |
US7774784B2 (en) * | 2005-03-17 | 2010-08-10 | Microsoft Corporation | Determining an actual amount of time a processor consumes in executing a portion of code |
US7747653B2 (en) * | 2005-08-26 | 2010-06-29 | International Business Machines Corporation | Summarizing application performance in a large system from a components perspective |
US8001532B1 (en) * | 2006-03-10 | 2011-08-16 | Parasoft Corporation | System and method for generating source code-based test cases |
US8341604B2 (en) | 2006-11-15 | 2012-12-25 | Qualcomm Incorporated | Embedded trace macrocell for enhanced digital signal processor debugging operations |
US8370806B2 (en) | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
US8380966B2 (en) | 2006-11-15 | 2013-02-19 | Qualcomm Incorporated | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging |
US8533530B2 (en) | 2006-11-15 | 2013-09-10 | Qualcomm Incorporated | Method and system for trusted/untrusted digital signal processor debugging operations |
US9031916B2 (en) * | 2006-12-28 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Storing log data efficiently while supporting querying to assist in computer network security |
US8484516B2 (en) * | 2007-04-11 | 2013-07-09 | Qualcomm Incorporated | Inter-thread trace alignment method and system for a multi-threaded processor |
US8032867B2 (en) * | 2007-06-05 | 2011-10-04 | Computer Associates Think, Inc. | Programmatic root cause analysis for application performance management |
US8010900B2 (en) * | 2007-06-08 | 2011-08-30 | Apple Inc. | User interface for electronic backup |
US8140919B2 (en) * | 2007-10-15 | 2012-03-20 | International Business Machines Corporation | Display of data used for system performance analysis |
JP2009303462A (ja) * | 2008-06-17 | 2009-12-24 | Mitsubishi Electric Corp | 監視制御システム |
US7526682B1 (en) * | 2008-06-20 | 2009-04-28 | International Business Machines Corporation | Effective diagnosis of software hangs |
JP2010015482A (ja) * | 2008-07-07 | 2010-01-21 | Yokogawa Electric Corp | Icテスタのデバック装置 |
US8502822B2 (en) * | 2008-09-30 | 2013-08-06 | Nintendo Co., Ltd. | Method and apparatus for visualizing and interactively manipulating profile data |
US8499240B2 (en) * | 2008-10-31 | 2013-07-30 | Sap Ag | Rule-based presentation of log messages on a graphic timeline |
US8266593B2 (en) * | 2008-12-01 | 2012-09-11 | Wipro Limited | System and method for analyzing performance of a software testing system |
US8572581B2 (en) * | 2009-03-26 | 2013-10-29 | Microsoft Corporation | Measurement and reporting of performance event rates |
US8099631B2 (en) * | 2009-07-17 | 2012-01-17 | Sap Ag | Call-stacks representation for easier analysis of thread dump |
US8423088B2 (en) * | 2009-07-22 | 2013-04-16 | Microsoft Corporation | Aggregated, interactive communication timeline |
US20110098973A1 (en) * | 2009-10-23 | 2011-04-28 | Computer Associates Think, Inc. | Automatic Baselining Of Metrics For Application Performance Management |
US8601444B2 (en) * | 2009-10-27 | 2013-12-03 | Microsoft Corporation | Analysis and timeline visualization of thread activity |
JP2011138219A (ja) * | 2009-12-25 | 2011-07-14 | Toshiba Corp | 並列プログラム解析結果表示装置および並列プログラム解析結果表示方法 |
US9846628B2 (en) * | 2010-06-15 | 2017-12-19 | Microsoft Technology Licensing, Llc | Indicating parallel operations with user-visible events |
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 |
KR101623564B1 (ko) * | 2010-10-19 | 2016-05-24 | 삼성전자주식회사 | 멀티쓰레드 환경을 테스트하는 커버리지 장치 및 방법 |
JP4905597B1 (ja) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 |
CN102855173B (zh) * | 2011-06-27 | 2015-10-28 | 北京新媒传信科技有限公司 | 一种软件性能测试方法和装置 |
US9069899B2 (en) * | 2012-06-27 | 2015-06-30 | Microsoft Technology Licensing, Llc | Integrating diagnostic information in development environment |
US9691171B2 (en) | 2012-08-03 | 2017-06-27 | Dreamworks Animation Llc | Visualization tool for parallel dependency graph evaluation |
CN104008030A (zh) * | 2013-02-27 | 2014-08-27 | 腾讯科技(深圳)有限公司 | 内核性能测试的方法及装置 |
JP6437226B2 (ja) * | 2013-07-22 | 2018-12-12 | 株式会社東芝 | 情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システム |
US10725889B2 (en) * | 2013-08-28 | 2020-07-28 | Micro Focus Llc | Testing multi-threaded applications |
WO2015094312A1 (en) | 2013-12-20 | 2015-06-25 | Hewlett-Packard Development Company, L.P. | Identifying a path in a workload that may be associated with a deviation |
US10489266B2 (en) * | 2013-12-20 | 2019-11-26 | Micro Focus Llc | Generating a visualization of a metric at one or multiple levels of execution of a database workload |
JP6189232B2 (ja) | 2014-03-04 | 2017-08-30 | 株式会社東芝 | プログラム情報生成システム、その方法、プログラム、およびプログラム情報表示システム |
JP6223866B2 (ja) * | 2014-03-05 | 2017-11-01 | 株式会社東芝 | 表示情報生成装置、プログラム実行状況表示システム、方法およびプログラム |
US10268179B2 (en) * | 2014-04-15 | 2019-04-23 | Fuji Corporation | NC machine tool |
US9316689B2 (en) | 2014-04-18 | 2016-04-19 | Breker Verification Systems | Scheduling of scenario models for execution within different computer threads and scheduling of memory regions for use with the scenario models |
JP6258159B2 (ja) | 2014-08-26 | 2018-01-10 | 株式会社東芝 | プログラム情報生成システム、方法、及びプログラム |
US9424026B2 (en) * | 2014-09-29 | 2016-08-23 | Sap Se | Visualizations of inter-entity calls |
CN107003931B (zh) * | 2014-12-09 | 2021-07-02 | 微福斯有限责任公司 | 将测试验证从测试执行分离 |
WO2016186676A1 (en) * | 2015-05-21 | 2016-11-24 | Hewlett Packard Enterprise Development Lp | Application thread visualization |
JP6532762B2 (ja) * | 2015-06-02 | 2019-06-19 | 株式会社東芝 | 情報生成システム、装置、方法、及びプログラム |
US10922212B2 (en) * | 2017-05-06 | 2021-02-16 | Servicenow, Inc. | Systems and methods for service catalog analysis |
CN109298995B (zh) * | 2017-07-24 | 2022-05-13 | 北京搜狗科技发展有限公司 | 一种性能测试方法、装置、电子设备以及存储介质 |
US10572374B2 (en) * | 2017-09-06 | 2020-02-25 | Mayank Mohan Sharma | System and method for automated software testing based on machine learning (ML) |
US11847597B2 (en) | 2020-11-29 | 2023-12-19 | Performetriks Llc | Computer network with a performance engineering maturity model system |
US11625313B2 (en) * | 2021-04-22 | 2023-04-11 | Microsoft Technology Licensing, Llc | Aggregated view of task performance data |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5168554A (en) * | 1989-10-13 | 1992-12-01 | International Business Machines Corporation | Converting trace data from processors executing in parallel into graphical form |
EP0610581A3 (en) * | 1993-01-29 | 1994-12-28 | Ibm | Process for displaying flow data, produced by a parallel processing computer. |
JPH07200364A (ja) * | 1994-01-08 | 1995-08-04 | Hitachi Denshi Ltd | リアルタイムプログラム測定器 |
US5960199A (en) * | 1996-11-12 | 1999-09-28 | International Business Machines Corporation | Model trace view for object-oriented systems |
US5862381A (en) * | 1996-11-26 | 1999-01-19 | International Business Machines Corporation | Visualization tool for graphically displaying trace data |
KR100248376B1 (ko) * | 1997-10-28 | 2000-03-15 | 정선종 | 동적-비주얼 통합 병렬 디버깅 장치 및 디버깅 방법 |
US6226787B1 (en) * | 1999-01-25 | 2001-05-01 | Hewlett-Packard Company | Visualization method and system for dynamically displaying operations of a program |
US6611276B1 (en) | 1999-08-31 | 2003-08-26 | Intel Corporation | Graphical user interface that displays operation of processor threads over time |
US6701363B1 (en) * | 2000-02-29 | 2004-03-02 | International Business Machines Corporation | Method, computer program product, and system for deriving web transaction performance metrics |
US20030063130A1 (en) * | 2000-09-08 | 2003-04-03 | Mauro Barbieri | Reproducing apparatus providing a colored slider bar |
DE10055250A1 (de) | 2000-11-08 | 2002-06-06 | Siemens Ag | Softwarewerkzeug zur Überwachung eines Automatisierungsgerätes auf Störungen |
US6789182B1 (en) * | 2000-11-13 | 2004-09-07 | Kevin Jay Brothers | System and method for logging computer event data and physical components of a complex distributed system |
US6785893B2 (en) * | 2000-11-30 | 2004-08-31 | Microsoft Corporation | Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur |
US6802055B2 (en) * | 2001-06-27 | 2004-10-05 | Microsoft Corporation | Capturing graphics primitives associated with any display object rendered to a graphical user interface |
US7917895B2 (en) * | 2001-07-27 | 2011-03-29 | Smartesoft, Inc. | Automated software testing and validation system |
US7120901B2 (en) * | 2001-10-26 | 2006-10-10 | International Business Machines Corporation | Method and system for tracing and displaying execution of nested functions |
JP2003208339A (ja) * | 2002-01-17 | 2003-07-25 | Fujitsu Ltd | プロセッサ動作表示装置及びプログラム |
US7131113B2 (en) * | 2002-12-12 | 2006-10-31 | International Business Machines Corporation | System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts |
US7328429B2 (en) * | 2003-11-13 | 2008-02-05 | Intel Corporation | Instruction operand tracing for software debug |
-
2005
- 2005-04-15 US US11/107,464 patent/US7698686B2/en active Active
-
2006
- 2006-04-03 KR KR1020077020280A patent/KR20070121649A/ko not_active IP Right Cessation
- 2006-04-03 WO PCT/US2006/012176 patent/WO2006113111A2/en active Application Filing
- 2006-04-03 CN CN2006800090478A patent/CN101208659B/zh active Active
- 2006-04-03 EP EP06740332.9A patent/EP1869555B1/en active Active
- 2006-04-03 JP JP2008506502A patent/JP5021623B2/ja active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136093A (zh) * | 2011-11-23 | 2013-06-05 | 腾讯科技(深圳)有限公司 | 一种获取性能缺陷信息的方法及装置 |
CN105144117A (zh) * | 2012-12-14 | 2015-12-09 | 微软技术许可有限责任公司 | 对调用堆栈和上下文数据的自动相关和分析 |
CN104969191A (zh) * | 2013-03-13 | 2015-10-07 | 英特尔公司 | 针对性能和正确性使多线程软件程序的已记录执行可视化 |
CN104969191B (zh) * | 2013-03-13 | 2019-02-26 | 英特尔公司 | 针对性能和正确性使多线程软件程序的已记录执行可视化 |
CN105204981A (zh) * | 2014-05-28 | 2015-12-30 | 北京奇虎科技有限公司 | 应用性能测试方法和装置 |
CN104765685A (zh) * | 2015-04-01 | 2015-07-08 | 上海闻泰电子科技有限公司 | 一种内核进程图形化分析方法 |
CN104765685B (zh) * | 2015-04-01 | 2017-12-05 | 上海闻泰电子科技有限公司 | 一种内核进程图形化分析方法 |
CN109753414A (zh) * | 2017-11-01 | 2019-05-14 | 阿里巴巴集团控股有限公司 | 性能数据的采集方法、展示方法、电子设备和客户端 |
CN111061621A (zh) * | 2019-12-30 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种验证程序性能的方法、装置、设备及存储介质 |
CN113282444A (zh) * | 2020-02-20 | 2021-08-20 | 北京京东振世信息技术有限公司 | 用于业务流程调试的可视化方法和装置 |
CN113282444B (zh) * | 2020-02-20 | 2023-09-22 | 北京京东振世信息技术有限公司 | 用于业务流程调试的可视化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2008537222A (ja) | 2008-09-11 |
WO2006113111A2 (en) | 2006-10-26 |
KR20070121649A (ko) | 2007-12-27 |
US20060248401A1 (en) | 2006-11-02 |
EP1869555A2 (en) | 2007-12-26 |
JP5021623B2 (ja) | 2012-09-12 |
EP1869555A4 (en) | 2012-04-18 |
WO2006113111A3 (en) | 2007-11-29 |
US7698686B2 (en) | 2010-04-13 |
CN101208659B (zh) | 2012-06-13 |
EP1869555B1 (en) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101208659B (zh) | 用于对软件程序进行性能分析的方法和装置 | |
US7275235B2 (en) | Graphical application development system for test, measurement and process control applications | |
US6593940B1 (en) | Method for finding errors in multithreaded applications | |
US6332212B1 (en) | Capturing and displaying computer program execution timing | |
US7650574B2 (en) | Visually indicating problems found during programmatic analysis of a graphical program | |
KR101643003B1 (ko) | 사용 패턴 기반의 자동화된 폼 레이아웃 | |
US8392930B2 (en) | Resource contention log navigation with thread view and resource view pivoting via user selections | |
US20050021289A1 (en) | Method for the use of information in an auxiliary data system in relation to automated testing of graphical user interface based applications | |
US8601442B2 (en) | Marker correlation of application constructs with visualizations | |
US9824075B1 (en) | System and method for interaction coverage | |
US8368697B2 (en) | Providing an overview of a large event sample period that supports triage and navigation | |
US8769497B2 (en) | System and method for use in indicating execution of application code | |
US20110289373A1 (en) | Electornic Design Emulation Display Tool | |
KR20110065067A (ko) | 멀티 쓰레드 테스팅시 발생되는 에러 정보에 대한 비주얼 인터페이스를 제공하는 장치 및 방법 | |
US20050268173A1 (en) | Programmatically analyzing a graphical program by traversing objects in the graphical program | |
US20050102583A1 (en) | Methodology for debugging RTL simulations of processor based system on chip | |
US20080184150A1 (en) | Electronic circuit design analysis tool for multi-processor environments | |
US20060206831A1 (en) | Methods and apparatus providing custom analysis of test and measurement data | |
US20050022170A1 (en) | Visual debugging interface | |
CN104428757B (zh) | 在开发环境中集成诊断信息 | |
EP2410429A1 (en) | System and method for use in indicating execution of application code | |
Zhou et al. | A Survey of Patterns for Adapting Smartphone App UIs to Smart Watches | |
US9244814B1 (en) | Enriched log viewer | |
US20080270847A1 (en) | Methods and Apparatus for Displaying Production and Debug Test Data | |
US20070011657A1 (en) | System, method and viewer program to display a chart of current array values for an array data set |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150504 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150504 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |