分析计算设备在使用场景中的性能的制作方法

文档序号:6439161阅读:450来源:国知局
专利名称:分析计算设备在使用场景中的性能的制作方法
技术领域
本发明涉及分析计算设备性能。
背景技术
计算设备的用户期望这些计算设备及时操作并完成由计算设备执行的任务。当任务花费的时间超过其预期时,用户通常会感到沮丧。这样的沮丧可能会导致用户对计算设备的硬件的制造商和/或在计算设备上安装的软件的开发者产生负面的印象。对这些制造商和开发者而言,减少或消除这样的负面印象显然是合乎需求的。然而,对许多任务而言,计算设备执行任务的及时性取决于计算设备的总体配置而较少地取决于安装在计算设备上的各个硬件和软件。任务可在具有第一配置的一种类型的计算设备上非常快速地执行,但是在具有不同配置的同一类型的计算设备上非常缓慢地执行。因此,制造商和开发者改进其各个产品以改进计算设备的性能的能力有限。相反,改变计算设备的配置将提高执行任务的速度。

发明内容
计算设备的配置中的改变可影响计算设备的性能。然而,用户通常无法对计算设备的配置作出改变,因为他们不了解如何作出这样的改变或因为他们不知道什么改变可能影响性能。申请人认识到并理解,对计算设备的某些操作的自动分析可产生关于计算设备的配置的有用信息。另外,申请人认识到并理解,在关于配置的信息被分析时,这些信息可向用户就要对配置作出的改变提供建议。申请人:还认识到并理解,计算设备执行的某些特定操作可产生关于配置的尤其有用的信息,使得分析这些操作提供的信息与由其它操作提供的信息相比更有价值。计算设备可由用户按照各种方式(包括在各种使用场景中)使用。申请人认识到并理解,分析使用场景期间由计算设备执行的操作可提供可用于对计算设备的配置建议改变的信息。例如,可对在使用场景期间执行的操作进行关键路径分析以为该计算设备标识该使用场景的关键路径。然后可根据对关键路径的分析标识对配置的可能影响使用场景的关键路径的改变。对关键路径的改变可影响计算设备在使用场景的总体操作。此处描述的是用于分析在使用场景的关键路径期间执行的操作并建议可改变计算设备的配置以改进使用场景的性能的方式的各种原理。根据这些原理中的某些,可标识使用场景的一般关键路径。因为使用场景的关键路径会对特定计算设备变化,可使用关于一般关键路径的信息分析计算设备以确定特定计算设备上使用场景的关键路径。例如,在特定计算设备上,可启用跟踪功能,以使得能够标识关键路径期间执行的操作。然后可在使用场景中操作特定计算设备,并分析踪迹以标识在使用场景期间执行的操作序列。基于分析,可提出关于如何改变计算设备的配置来影响使用场景的性能的建议。例如,如果踪迹指示计算设备展示了指示已对其开发了改进的特定、已知配置的操作模式,诸如因有新版本可用的软件的过期版本造成的问题,可作出用改进来更新计算设备的配置的推荐。
以上是对由所附权利要求书所定义的本发明的非限定性的概述。


附图不旨在按比例绘制。在附图中,各个附图中示出的每个相同或近乎完全相同的组件由同样的附图标记来表示。出于简明的目的,不是每个组件在每张附图中均被标记。在附图中图1是一个示例性计算设备的框图,各实施例可采用该示例性计算设备来操作,且该示例性计算设备示出了形成计算设备的配置的一部分的计算设备的各个组件;图2是用于向用户建议可对计算设备的配置作出的、影响在使用场景期间计算设备的性能的改变的一个示例性过程的流程图;图3是用于标识使用场景的关键路径的一个示例性过程的流程图;图4是用于配置计算设备以记录关于该计算设备在使用场景期间的操作的信息的一个示例性过程的流程图;图5是用于收集关于在计算设备在使用场景中的操作期间该计算设备的操作状态的信息的一个示例性过程的流程图;图6是用于分析关于计算设备的操作状态以标识可对该计算设备的配置作出的、影响在使用场景期间的性能的改变的一个示例性过程的流程图;图7是用于向用户输出关于要对计算设备的配置作出的、影响在使用场景期间的性能的改变的建议的一个示例性过程的流程图;图8是用于制造计算设备的示例性过程的流程图,所述过程包括评估该计算设备的配置;以及图9是某些实施例可采用其来操作的一个示例性类型的计算设备的框图。
具体实施例方式申请人:认识到并理解,对计算设备的自动分析可产生关于该计算设备的配置的有用信息。申请人还认识到并理解,基于这种自动分析的结果,可对计算设备的配置作出的、影响该计算设备的性能的改变可被标识并向用户建议。更具体地,申请人认识到并理解,可使用关键路径分析来揭示关于计算设备的配置的信息。计算设备可由用户按照各种方式(包括在各种使用场景中)使用。每一使用场景可具有可在自动关键路径分析期间被诊断的关键路径。可使用关于使用场景的关键路径的信息来标识可对计算设备的配置作出的、可在大体上和/或在该使用场景期间影响该计算设备的性能的潜在改变。此处描述的是关于对计算设备执行关键路径分析的各种原理。在一些实施例中,可使用关键路径分析来分析计算设备在使用场景期间执行的操作,并标识该计算设备在该使用场景中的关键路径。可至少部分基于关于使用场景的一般关键路径的信息来标识计算设备的关键路径。由于特定计算设备上的关键路径可基于配置而变化,一般关键路径对标识特定计算设备上的关键路径会是有用的。当标识了计算设备的关键路径时,可根据关键路径确定关于计算设备的配置的信息,并根据关于配置的信息,可标识可对该配置作出的、影响性能的改变。然后可将关于改变的建议提供给用户,使得用户可确定如何改变该计算设备的配置以影响性能。在这些实施例中,不了解如何作出改变和/或要作出什么改变的用户可使用建议来作出改变以影响性能。当作出影响性能的这些改变时,可改进用户的体验。根据此处描述的原理中的一些或全部操作的实施例在各种上下文中是有用的。申请人认识到并理解,在许多情况中,改变计算设备的软件配置来影响性能可能不是简单的。例如,当计算机设备被终端用户所占有时,用户可安装硬件/软件或采取对计算设备的配置具有影响的其它措施。然而,该终端用户可能没有足够的知识来改变计算设备的配置以影响性能。因为制造商和开发者对终端用户所拥有的计算设备的访问是受限的,制造商和开发者难以改变该计算设备的配置。因此,当计算设备为终端用户所占有时,对配置作出改变以影响性能可能是困难的。然而,该问题不限于终端用户所占有的计算设备。在计算设备被提供给终端用户之前,改变配置可能是同样困难的。对制造商/开发者而言,对计算设备的访问可能稍微较容易,但是一旦计算设备的设计定稿且该设备在工厂中投入生产,计算设备可能不是由擅长配置计算设备的工人处理的。设计者在计算设备生产之前有能力改变配置,但不具有在生产期间改变计算设备的能力。这可能是一个问题,因为在生产期间,可能在工厂现场对配置作出改变。例如,某些工厂可在计算设备上安装附加软件,如制造商同意安装的应用程序,设计者未计划安装附加软件,且这可能使计算设备的配置从设计者预期的配置改变。因为,这些安装是在生产时完成的,当工人不擅长作出配置改变时,对配置作出进一步的改变以影响性能将是困难的。工厂工人或其他用户在生产期间对配置作出的改变从而可能会使计算设备的性能降级。然而,这些相同的用户可能不擅长配置计算设备或作出进一步改变以影响或改进性能。申请人:认识到并理解,对无论终端用户还是计算机制造商均可用的、自动检测配置相关性能问题并提出改进的工具是有利的。这样的可提供能够影响性能的、关于如何改变计算设备的配置的建议的自动分析工具能够使得这些相同的用户和工厂工人对配置作出可改进性能的改变。性能上的改进可改进终端用户的体验。如上所述,申请人认识到并理解,这样的自动分析可基于分析计算设备在使用场景期间的操作来执行。使用场景是可由计算设备执行的一组活动或一组类型的活动。在某些情况中,使用场景可以是实现一个目标或一个类型的目标的一组活动或一组类型的活动。开机、关机、从待机恢复、启动应用程序和执行应用程序是可对其提供性能分析工具的使用场景的示例。具体地,可使用关键路径分析技术来执行这样的分析。这样的关键路径分析技术可对计算设备的该使用环境场景的“关键路径”中的操作进行评估。尽管特定使用场景可在计算设备之间或在同一计算设备上的使用场景的性能之间以某些方式变化,在使用场景的关键路径上发生的操作可由在使用场景期间执行的一组活动或一组活动类型来表征。这组操作或操作类型因为发生在关键路径上,它们可以是影响计算设备在使用场景期间的性能的一组操作或操作类型,因为执行这些操作或操作类型时的任何延迟将延迟使用场景。例如,在某些实施例中以及在某些使用场景中,使用场景的“关键路径”包括当计算设备在使用场景中操作时参与的、影响计算设备完成使用场景的执行将花费的时间的长度的活动。因此,不影响计算设备将花费来完成使用场景的执行的时间的长度的任何活动将不处于关键路径中。因此,在这样的关键路径中,关键路径上的活动的执行时间影响使用场景的执行时间。然而,各实施例不限于使用这种类型的关键路径或任何特定类型的关键路径,且各实施例可将任何合适的活动或任何合适的类型的活动包括在关键路径中。计算设备的配置可影响在该计算设备上的使用场景的关键路径。更具体地,包括在特定计算设备的使用场景中的活动可基于计算设备的配置而变化。例如,一个示例性开机使用场景可总是包括加载操作系统内核和加载设备驱动器。加载内核和加载驱动器从而可以是形成开机的关键路径的一部分的活动。然而,加载哪一个操作系统内核和哪一个设备驱动器可在计算设备之间变化。例如,当第一计算设备被配备特定硬件和/或软件时,可在开机使用场景中加载与配备不同硬件和/或软件的第二计算设备所加载的不同的设备驱动器。因此,在使用场景的关键路径期间执行的精确的操作或操作类型可基于计算设备的配置而变化。然而,活动的可识别模式可在关键路径期间发生。分析特定计算设备上的关键路径于是可提供关于计算设备的配置的某些信息。关于配置的这种信息可对可如何改变配置来影响计算设备在使用场景期间的性能提供某种洞察。与在计算设备的一般使用期间相比,在计算设备的某些使用场景期间,诸如当计算设备正在执行某些任务时,用户可更多地注意到计算设备完成任务的及时性。改进计算设备在这些使用场景期间的性能可从而被用户更多地注意到。从而,改进计算设备在某些使用场景期间的性能可改进用户的体验且可改进用户对计算设备或计算设备上的软件的总体印象。这可相应地减少用户会对计算设备的硬件的制造商和/或在计算设备上安装的软件的开发者产生负面的印象的可能性。鉴于此,在以下更详细描述的一些实施例中,对计算设备在使用场景期间的操作执行关键路径分析。在一个实施例中,在使用场景中执行计算设备,并收集关于计算设备在使用场景期间的操作状态的信息。然后分析所收集的信息以标识操作状态中的行为模式,行为模式包括其中在第一任务能够完成之前第一任务等待第二任务完成的延迟或在使用场景期间资源消耗的水平。因为消除或减少这些延迟模式的持续时间或减少所消耗的资源量可影响当计算设备在使用场景中操作时计算设备的性能,因此会影响这些行为模式的、对计算设备的配置的改变则被标识。例如,所收集的关于操作状态的信息可与已知的会影响在计算设备在使用场景期间的操作中所观察到的已知行为模式的配置改变有关的信息进行比较。作为另一示例,可分析所收集的信息来标识新的行为模式,这可以是可能导致改进性能的配置改变的潜在区域。然后可向用户建议所标识的配置改变,使得用户可确定如何改变该计算设备的配置以影响性能。在以下所述的示例中,为易于描述起见,操作计算设备并接收关于配置改变的信息的人被称为用户。用户可以是任何合适的人,包括终端用户或工厂工人。以下讨论用于执行关键路径分析的某些示例性技术。可在图1的示例性环境的上下文中理解这些示例性技术。然而,应当理解,图1的环境仅仅说明了可用于以下所述的实施例的环境的类型,并且其他环境是可能的。图1示出了示例性计算设备100的组件中的某些的草图。计算设备100包括影响该计算设备的配置的各种硬件和软件组件。如图1中所示,计算设备100包括硬件,硬件包括设备102。设备102可以是可形成计算设备100的一部分或可连接至计算设备100的任何类型的设备,且因此可以是内部或外部设备。设备102的示例包括输入和/或输出设备,包括用于传达要被输入或输出的信息的接口和总线。设备102可包括(尽管在图1中分开示出)存储设备104,它存储软件108以及用于与用户交互的用户接口设备106。计算设备100的软件108包括供在计算设备100上执行的任何合适的计算机可执行指令。如图1中所示,软件108包括操作系统110、用于与设备102交互的设备驱动器112、应用程序114以及服务116(这可在某些系统中被称为端口监控程序(daemon))。操作系统110包括形成操作系统的核心的内核116。图1中所示的计算设备100的每一组件与未示出的计算设备100的其它组件一样,可对计算设备100的配置具有影响。例如,在计算设备100上存在的服务116可确定当计算设备100在使用时什么进程正在执行,因为与服务116相关的进程可总是在后台中执行并使用系统资源。类似地,应用程序114可与在后台中运行的进程或可在开机时运行的进程相关。在某些情况中,各个服务116可能不具有始终运行的进程,而是仅当特定应用程序114安装在计算设备100上时或在计算设备100上执行时运行的进程。另外,哪些设备102在计算设备100上存在可确定什么设备驱动器112被安装或运行在计算设备100上。计算设备100的组件因而在任何给定时间确定计算设备100的配置并影响计算设备100的操作。因而受配置影响的计算设备100的使用场景受到计算设备100的组件的影响。使用场景可以是因某个共同特征而相关的一组活动,如在特定时间执行或为实现特定目标的一组操作。例如,使用场景可以是计算设备100的开机、计算设备100的关机、从待机的恢复、应用程序114的启动、当用户不在活动地使用计算设备100时计算设备100的稳定状态操作、或任何其它相关的操作集合。在使用场景时执行什么操作部分取决于计算设备100的配置。例如,当试图启动应用程序114时,应用程序114可能需要一些处理器时间来执行特定的操作。然而,如果有许多服务116在计算设备100上执行,这些服务116可能需要处理器时间,则应用程序114在执行之前可以被延迟。当服务116执行的操作在使用场景期间执行时,它们可形成计算设备的使用场景的一部分。使用计算设备100的用户可能会被计算设备100的配置影响。为了继续应用程序示例,由于服务116的操作插入的延迟,用户可能在打开应用程序114时经历延迟。这种延迟会令用户不满。然而,对计算设备100的配置的改变能够消除延迟,诸如通过改变服务116正在执行的内容或改变服务116执行的方式。然而,如上所述,用户可能不能够对配置作出这样的改变,因为他们不确定如何作出这样的改变或要作出什么改变。然而,此处讨论类型的自动分析可通过建议可对计算设备100的配置作出的、能够影响计算设备100在使用场景期间的性能的改变来协助这些用户。图1示出了可分析计算设备100在使用场景期间的操作的关键路径分析工具120。在图1中示出的实施例中,关键路径分析工具120可根据初始化数据集中略述的参数来操作。初始化数据集可例如被包含在初始化文件122中,或可按照任何其它合适的方式结构化。为易于描述起见,在以下示例中,初始化数据集将被描述为初始化文件,但应理解,各实施例不限于将初始化数据集构造成文件系统的文件。初始化文件122可用于按照特定方式配置关键路径分析工具120来分析计算设备100在使用场景期间的操作,以便标识使用场景的关键路径。例如可通过允许记录在计算设备100上发生的特定事件来分析操作。当事件发生时,存储标识事件发生并可任选地指示在事件发生时操作系统的状态的踪迹124。在一些实施例中,可贯穿计算设备在使用场景中的执行来创建踪迹124,且可在一个或多个特定事件发生时存储踪迹的某些或全部数据。在其它实施例中,可在一个或多个特定事件发生时创建踪迹124。实施例不限于按照任何特定方式执行跟踪。跟随使用场景,这些踪迹124可被关键路径分析工具120分析以标识特定计算设备在使用场景中的关键路径。如上所述,可至少部分基于关于使用场景的一般关键路径的信息来确定特定计算设备的关键路径。当标识了特定计算设备的关键路径时,可使用关键路径来标识可对计算设备的配置作出的改变。在关键路径分析工具120的一个示例性使用中,可使用初始化文件122来配置关键路径分析工具120以分析作为计算设备100的开机阶段的使用场景。初始化文件122可指示一般启动阶段的关键路径包括以下操作类型启动操作系统的内核;加载并初始化设备驱动器;加载并初始化服务;加载并初始化被配置成在开机时启动的应用程序;加载并显示用户界面;执行用户的登录操作;以及根据在用户简档中列出的首选项定制用户界面。这些操作类型中的每一个是“活动”。哪些活动在使用场景期间在计算设备100上执行可基于计算设备100的配置变化,诸如执行哪些或多少“加载设备驱动器”活动基于哪些设备102和设备驱动器112或有多少设备102和设备驱动器112在计算设备100上存在而变化。初始化文件122可对关键路径的每一活动标识与该活动相关联的事件以及可用于标识活动何时执行的事件。事件可以是计算设备100的状态中的任何改变。事件可例如在处理器从执行一个进程切换到另一进程,或从执行一个函数改变为另一函数,或分配计算设备100上的存储器资源时发生。与“加载设备驱动器”活动相关联的事件例如可以是特定进程执行的开始和/或执行特定函数。因为初始化文件122使事件与活动相关联,标识计算设备100上的事件或几组事件可导致标识在使用场景期间执行的活动。此外,因为活动作为关键路径的一部分执行,标识执行了哪些活动可确定使用场景的关键路径。执行了哪些活动还与计算设备100的配置有关(例如,执行了多少“加载设备驱动器”活动取决于在计算设备100上存在多少设备驱动器)。因此,监视在使用场景期间在计算设备100上发生的特定事件可提供关于计算设备100的配置的信息。关键路径分析工具120从而可配置计算设备100来允许记录初始化文件122中指定的事件。计算设备100然后可在与初始文件122相关的使用场景中操作。在计算设备100在使用场景的操作期间,事件将发生,且将生成和/或存储踪迹124。跟随使用场景,可分析这些踪迹以确定计算设备100上的使用场景的关键路径。一旦标识了关键路径,关键路径分析工具120可确定在活动中是否识别了任何存在的行为模式。行为模式可以是计算设备100在使用场景期间可影响在使用场景期间的性能的使用模式。例如,模式可以是与计算设备100上的延迟以及资源消耗水平相关的几组操作。行为模式可以例如是观察到的特定行为在使用场景期间的重复,或可以例如是观察到的已知模式在使用场景期间的出现。已知行为模式可与可影响配置的、对配置的已知改变相关联。例如,已知行为模式可与软件中的已知隐错相关联,对该隐错,有更新可用于修补该隐错。当在使用场景期间在计算设备100上观察到该模式时,则可确定计算设备100拥有具有该隐错的老软件。关键路径分析工具100从而可推荐用户通过更新老软件来改变计算设备100的配置。对所观察到的特定行为的重复,行为的影响可与可在初始化文件122中标识的性能度量进行比较。重复行为的影响例如可以是作为每次执行该行为时该行为的结果而在使用场景期间经历的延迟或在使用场景期间消耗的资源。基于该影响与性能度量的比较,可作出关于是否应向用户提出确定是否可对计算设备100中与行为相关联的组件作出改变的推荐的判断。例如,如果作为行为的结果而经历的延迟大于初始化文件122中标识的阈值延迟,则关键路径分析工具120可判断应向用户提出调查与行为相关联的软件来确定是否可向软件作出改变的推荐。可作为检测行为模式的结果而作出的改变可诸如通过在使用场景期间减少资源的消耗或减少经历的延迟来影响计算设备的性能。关键路径分析工具120因而可通过分析在使用场景期间执行的操作来向用户提出关于可对计算设备100的配置作出的改变的推荐。用户在接收其推荐时可作出所推荐的改变或确定是否有匹配该推荐的改变可用。不具有独立地对配置作出改变的知识或技能的用户因而能够在关键路径分析工具120的帮助下作出改变。作为这些改变的结果,计算设备的性能可得以改进,且用户体验可得以改进。以下结合图2-7讨论了可执行关键路径分析以及可实现关键路径分析工具的各个实施例的各种方式的更多细节。图2示出了可分析计算设备的操作的总体过程的一个示例,而图3-7示出了可执行关键路径分析工具的特定任务的方式的示例。实施例不限于结合参考图2-7示出或讨论的任何技术来操作,其它技术是可能的。图2示出了可执行来执行计算设备的关键路径分析的一个过程200。过程200以准备操作202、204和206开始,这些操作在标识要分析的一个计算设备之前被执行。在框202,选择计算设备的使用场景。在框204,审阅框202中选择的使用场景来确定使用场景的一般关键路径。在框204中标识的一般关键路径是描述一般而言在使用场景期间在计算设备上通常执行的、必须执行的、或可任选执行的活动的一般化的关键路径。在一些情况中,框204的关键路径可能不是特定活动的列表。例如,框204中标识的关键路径可包括如计算设备的开机阶段的使用场景的“加载设备驱动器”的活动,而非如“加载USB设备驱动器”的配置专用活动。在框204中标识一般关键路径除了标识在关键路径期间将执行哪些活动以外,还可包括可指示这些活动是否已经发生的事件。在框206,汇编使用场景的已知行为模式的数据集。数据集可包括与计算设备的好行为和/或计算设备的坏行为相关联的已知行为模式,好行为包括在使用场景期间不会负面地影响计算设备的性能的那些行为,坏行为包括在使用场景期间负面地影响计算设备的性能的那些行为。行为模式可以是在与计算设备配置相关的、导致好或坏行为的活动期间执行的操作的模式。例如,如果包括错误的软件并安装在计算设备上,则该软件可能引起在活动中插入延迟或使得在活动期间要消耗大量资源。在该软件存在时,可诸如通过观察到花费长时间来完成以及引起延迟的活动的特定操作,在活动期间执行的操作中观察到这种延迟或资源消耗。数据集中的行为模式从而可与操作中的模式相关联,操作中的模式包括与一个或多个操作或活动相关联的进程或函数中的模式、活动期间执行的操作、操作或活动完成所花费的时间、操作或活动期间消耗的资源、或关于操作或活动的其它信息。在某些情况中,与关键路径和/或使用场景有关的活动或活动类型可与行为模式相关联,使得行为模式可在活动或使用场景的上下文中检测到。可将对行为模式可用的至少一些信息存储为行为模式的签名,这包括当行为模式与关于计算设备上执行的操作以及这样的操作中的模式的信息比较时可标识行为模式的征兆。另外,已知行为模式的数据集可包括关于负面地影响性能的、对配置的改变的信息。例如,如果软件的一版本包括引起延迟的错误,而软件的后续版本修补该错误且不会引起延迟,则对配置的改变可以是安装后续版本。通过将该信息置于框206的数据集中,当数据集中的已知行为模式与计算设备匹配时,可根据数据集建议对配置的改变。可按照任何适合的方式汇编框206的数据集。在某些实施例中,在对特定计算设备使用关键路径分析工具来分析该计算设备之前完全地汇编数据集,使得在测试计算设备之前所有的行为模式是已知的。在其它实施例中,关于行为模式的至少某些信息可在对计算设备使用关键路径分析工具之前汇编,而关于行为模式的附加信息可在对计算设备使用关键路径分析工具来标识行为模式时收集并添加到数据集,如下所述。在标识了使用场景的关键路径并汇编了行为模式的数据集之后,可使用关于关键路径的信息来对一个或多个特定计算设备执行关键路径分析。每一计算设备可具有类似于以上结合图1讨论的关键路径分析工具。关于在框204中确定的关键路径的信息可被输入到关键路径分析工具中例如作为初始化文件。在框208,在框202中所选的使用场景中操作特定计算设备。在使用场景的操作期间,当框204中标识的事件在特定计算设备上发生时,生成和/或存储日志。当这些事件发生时,生成并存储标识在事件发生时计算设备的操作状态的踪迹。在框210中,当使用场景结束时,由关键路径分析工具分析在框208中存储的踪迹以标识特定计算设备的关键路径(它可至少部分基于关于一般关键路径的信息)并标识特定计算设备的配置。标识配置可包括标识安装在特定计算设备上的硬件和/或软件或标识在使用场景时在计算设备上激活并使用的硬件和/或软件。可至少部分基于在框208中存储的踪迹来标识配置。例如,通过从踪迹中标识在使用场景期间在特定计算设备上发生的事件,可标识在该使用场景期间在该特定计算设备上发生的操作。执行操作可包括执行一个或多个进程的一个或多个函数,当从踪迹标识函数或进程时,可确定操作已经被执行。然后可基于操作标识在使用场景期间执行的特定活动。这些特定活动中的每一个可与计算设备的配置相关联,诸如特定硬件或软件,诸如每一 “加载设备驱动器”活动与特定设备驱动器相关联。一旦从特定计算设备的配置标识了活动和操作之后,还可标识操作中的异常行为。异常行为可包括花费了异常数量的时间来执行或使用了异常数量的资源的活动或操作。可通过将延迟或资源消耗与关于操作和活动所使用的时间和资源的预先存在的信息进行比较,来在活动期间计算设备执行的操作中观察到这些行为。这些异常行为可影响计算设备在使用场景中的性能,且使用此处所述的技术,可分析这些异常行为来确定可对计算设备的配置作出的、以消除异常行为的改变。可通过检测与框210中标识的每一活动有关的信息中的行为模式,诸如通过标识活动的操作中的模式来标识对配置的改变。在某些实施例中,检测操作中的行为模式可包括审阅和/或分析在活动期间收集的、与操作相关的踪迹以确定关于操作的某些信息。例如,可分析踪迹来确定活动期间或在活动期间的各个时间的资源消耗。作为另一示例,可分析踪迹来确定操作和活动中存在的延迟模式。延迟模式例如可以是当特定线程或进程在其可执行之前等待另一线程或进程的完成时,或当特定的线程或进程因为在处理器上未向该进程的线程给予时间而不能执行时。在与事件有关的踪迹中看到的资源消耗和延迟模式可提灌关于与这些事件有关的操作的信息。例如,通过分析踪迹,可标识关于特定操作的执行事件、操作期间的资源消耗或一起执行的操作的信息。然后可聚集并在一起分析关于活动的操作的信息以确定活动的操作中的模式。这些操作中的模式可以是标识计算设备在使用场景期间如何操作的模式的行为模式。行为模式可标识关于在关键路径的活动期间执行的操作的信息,诸如与一个或多个操作或活动相关联的进程或函数、在活动期间执行的操作、操作或活动完成所花费的时间、在操作或活动期间消耗的资源、或关于操作或活动的其它信息。在框212中,将可能与框210中标识的异常行为相关的活动的操作与已知行为模式的数据集进行比较,以确定操作是否匹配已知行为模式。如上所述,已知行为模式各自可与标识行为模式的征兆的签名相关联。检测匹配可包括将已知行为模式的签名与框210中标识的操作进行比较。这可包括比较可收集的关于行为模式的任何信息,包括与正在分析的已知操作相关联的活动、包括在模式中的操作、与一个或多个模式相关联的进程和/或函数、时间、资源消耗的水平、和/或关于操作和/或活动的任何其它合适的信息。例如,花费某一时间长度来执行的一组特定操作可在框210中被标识为异常的,并在框212中与已知行为模式进行比较。如果已知行为模式标识了这些操作以及该时间长度,则可检测所标识的操作以匹配已知行为模式。当检测到这样的匹配时,可在活动中标识已知行为模式。如上所述,已知行为模式可与可通过改变已知行为模式的行为来影响计算设备的性能的、对配置的已知改变相关联。例如,对软件的已知补丁可消除该软件中隐错造成的延迟。当基于框210的踪迹在特定计算设备上检测到这样的已知行为模式时,可检测该已知改变被以适用于该特定计算设备。在框214中,作出关于在框210中标识的任何操作(包括与异常行为相关联的操作)中是否存在任何潜在的新行为模式的判断。这些新行为模式可以是不匹配已知行为模式但可包括可被探索以标识可被作出以影响计算设备的性能的、配置中的改变的行为的行为模式。判断是否有任何新行为模式存在可包括审阅操作以及关于活动的操作的信息来标识操作之间的共同性。所比较的共同性可以是显示高于阈值的资源消耗或延迟的共同性。例如,当在插入长延迟或使用大量资源的若干操作的踪迹中观察到特定进程的特定函数时,这些操作可被标识为行为模式。因为所标识的这个行为模式不匹配任何已知的行为模式,这些操作然后可被标识为应被调查以判断是否可作出影响计算设备的性能的改变的潜在的新行为模式。在框216中,一旦在框212和214中检测到已知和新的行为模式,可向用户呈现关于所建议的对配置的改变的信息。对已知行为模式,可建议与已知行为模式相关联的已知改变。对新行为模式,可呈现已知行为模式底层的信息,诸如与行为模式相关的活动和/或操作、所标识的行为、以及该行为的影响(例如,造成的延迟或消耗的资源)。一旦在框216呈现了建议,过程200结束。用户可使用框216中呈现的建议来对计算设备的配置作出改变,从而影响计算设备的性能。在一些情况中,一旦作出了改变,计算设备在使用场景中的性能可改进。终端用户的体验从而也可改进。如上所述,图3-7提供其中可执行图2的过程的各步骤的方式的更详细的示例。
图3示出了用于准备以对使用场景执行关键路径分析的一个过程。过程300针对一般地而非在特定计算设备上收集关于使用场景的信息。如上所述,一旦收集了一般地描述使用场景的信息,该信息可用于对特定计算设备执行关键路径分析。一般地描述使用场景的信息的部分是使用场景的一般情况的关键路径。使用场景的一般情况的关键路径是一般形成关键路径的一部分的一组活动或活动类型。在特定计算设备上,执行的确切活动或活动的数目可变化,且某些使用场景可包括附加活动。但一般而言,在使用场景中操作的计算设备将执行包括在一般情况的关键路径中的活动或活动类型。存在计算设备的许多不同的使用场景,因为存在可使用计算设备的许多不同的方式。因为存在许多不同的使用场景,所以存在可在使用场景期间操作计算设备的许多不同的方式以及分析使用场景的许多不同的方式。过程300示出了可评估使用场景的一种方式。在过程300开始之前,选择了要分析的特定使用场景。在所选使用场景中,特定的软件对在使用场景中执行的操作施加某种控制。例如,计算设备的操作系统可施加这样的控制。可能是这种情况当使用场景是计算设备的开机时,操作系统标识并管控在开机阶段执行的操作。当分析使用场景时,于是分析管控使用场景的软件可提供关于使用场景的有用信息。从而,在框302中,可分析管控使用场景的软件。分析软件可包括任何合适的分析,包括对软件的指令/代码的分析。对代码/软件的分析可标识正在分析的软件执行什么类型的硬件或软件交互,诸如触发了什么其它类型的软件来在使用场景期间开始执行。在一些情况中,这些操作可以是形成使用场景的关键路径的活动。另外,通过检查交互,可标识与活动相关联的事件。例如,可标识要执行的进程或函数和与这些执行相关联的事件(诸如上下文切换)。还可从在多个计算设备上执行的操作正在使用场景中操作的观察来收集关于使用场景的信息。这些操作可协助标识什么活动一般形成关键路径的一部分,因为在多个计算设备上共同执行的操作可被推断为形成一般关键路径的一部分。从而,在框304中,在使用场景中操作多个计算设备,并观察到在计算设备上执行的操作。可按照任何合适的方式执行观察操作,包括通过分析关于在计算设备上执行的某些、许多或所有操作的踪迹或关于计算设备在使用场景期间的操作状态的其它信息。从在框302和304收集的信息,可在框306作出关于一般形成使用场景的关键路径的活动和操作以及对应于这些活动和操作或发出活动或操作被执行的信号的事件的判断。可按照任何特定的方式标识活动和操作,包括标识为操作/活动的类型或标识为特定的操作/活动。操作/活动的类型可例如按照操作/活动的目的或特征来描述,使得在特定计算设备上执行的特定操作/活动可匹配到类型并被确定为该类型的事件/活动。在框308,可收集关于关键路径的附加信息,包括统计信息。统计信息可包括测量特定计算设备上的特定关键路径的特定操作/活动的度量。例如,可标识整个关键路径的平均执行时间,使得一个计算设备上整个关键路径的执行时间可与平均相比较。作为另一示例,可标识操作或活动期间操作或活动类型的平均执行时间或平均延迟长度。当然,可收集除平均以外的统计信息,包括最大值、中值、众数、最小值、和标准差以及其它类型的统计信息。另外,统计信息可涉及除基于时间的属性以外的属性,包括资源消耗。在框310,可收集关于关键路径的事件、操作和活动的信息以及关于关键路径的统计信息并将其存储在初始化文件中。这种初始化文件可用于在特定计算设备上初始化关键路径分析工具。因而,初始化文件可包括对执行关键路径分析的工具有用的信息。例如,初始化文件可包含关于初始化文件所涉及的使用场景、事件对其收集踪迹的使用场景、与操作和活动事件相关的使用场景和基于事件如何标识操作和/或动作的信息,以及当在一般关键路径的上下文中确定特定关键路径的性能时测量操作/活动的统计信息。可从框302-308的分析和观察中搜集的、用于初始化关键路径分析工具的任何合适的信息可被包括在初始化文件中。一旦创建了初始化文件,过程300结束。初始化文件然后可用于初始化关键路径分析工具以在特定计算设备上执行关键路径分析,如下所述。在以上框302和304的讨论中,按照标识在使用场景中执行的所有或共同操作和活动的方式讨论了分析和观察。然而,在一些实施例中,可对要包括在关键路径中的特定操作/活动作出选择。选择可根据什么操作/活动是使用场景的必要部分来作出,使得如果这些事件/活动未完成则使用场景不能完成。选择也可根据什么操作/活动可对使用场景的整个持续时间造成影响来作出。在后一情况中,作为使用场景的一部分、但即使它们被延迟也不会引起使用场景的延迟的操作/活动不被标识为关键路径的部分。可执行这种选择来使关键路径分析工具聚焦于对使用场景具有最大影响或最直接影响的操作/活动,使得影响这些事件/活动的配置中的改变会影响使用场景的性能。应理解,实施例不限于按照任何特定方式执行这种选择。此外,实施例不限于执行任何选择。为易于描述起见,以下结合关键路径分析工具描述可与此处描述的关键路径分析一起使用的某些技术。然而,应理解,实施例不限于与执行任何特定操作或任务的任何特定类型的工具一起工作。图4示出了用于初始化特定计算设备上的关键路径分析工具以对特定计算设备上的使用场景执行关键路径分析的过程的一个示例。在图4的过程400之前,如上结合图2和3所述,可进行对使用场景和关键路径的一般的分析,且关键路径分析工具可被安装在特定的计算设备上。在过程400期间,可将关键路径分析工具配置成按照特定方式分析使用场景。过程400在框402开始,其中关键路径分析工具接收初始化文件,该文件标识要监视和/或分析使用场景的方式。初始化文件可包含关于使用场景、使用场景的关键路径的任何合适的信息,或关于如何监视和/或分析使用场景的信息。例如,初始化文件可包含关于形成使用场景的一般关键路径的一部分的事件、操作和/或活动的信息。初始化文件也可包含关于事件和操作/活动之间的关系的信息,使得在使用场景期间执行的活动和操作可通过标识使用场景期间的事件来标识。在框404,初始化文件中的信息由关键路径分析工具使用以初始化计算设备。具体地,在框404,可使用关键路径分析工具来配置计算设备以在由初始化文件标识的事件出现时生成踪迹。正如各实施例不限于此方面,这可按照任何合适的方式进行。在一些情况中,关键路径分析工具可配置它自己或计算设备上的某一装置以针对要监视的事件的特征监视在计算设备上执行的操作。当检测到特征时,该事件可被标识,而该时间的计算设备的操作状态被保存。在其它情况中,可使用现有的跟踪功能。例如,关键路径分析工具可直接与计算设备上的软件通信以请求该软件激活跟踪并将踪迹传输给关键路径分析工具。作为另一示例,可将跟踪基础架构安装在计算设备上,诸如形成操作系统的一部分的跟踪功能。华盛顿州雷德蒙市微软公司提供的Microsoft Windows 操作系统的Windows事件跟踪(ETff)功能是这样的基础架构的示例。为使用ETW,安装在操作系统上的软件可包括当被激活时向ETW提供关于事件的信息的工具。每一软件可向ETW注册,并指定可由该软件生成的事件的类型。当期望关于事件的信息时,可使用ETW来为特定事件激活这些软件中的工具。当事件发生时,所激活的每一软件向ETW提供关于事件的一些信息,而ETW可收集并存储关于那时计算设备的操作状态的信息。然后可从ETW检索关于事件的信息。在某些情况中,然后,关键路径分析工具可对初始化文件中所标识的每一事件,请求ETW激活对这些事件的跟踪。稍后,关键路径分析工具可从ETW检索关于这些事件的信息。然而,如上所述,可使用用于跟踪的任何合适的技术。在框406,除了为关键路径分析配置计算设备以外,关键路径分析工具可为关键路径分析配置它自身。配置关键路径分析工具可包括用于准备关键路径分析工具以执行关键路径分析的任何合适的动作。在某些情况中,框406的配置可包括用关于哪些事件与哪些操作相关的信息配置关键路径分析工具,使得当检测或观察到事件时,这些事件可与操作相关。一旦标识了操作,然后可标识操作所涉及的关键路径的活动。关键路径分析工具也可用关于关键路径的统计信息配置,诸如平均执行时间或平均资源消耗,使得关键路径分析工具可评估踪迹中观察到的特定行为模式是否是反常的或对使用场景而言是典型的。在框404和406中配置计算设备和关键路径分析工具之后,过程400结束。在过程400之后,计算设备可在使用场景中操作,且可在操作期间收集信息,使得关键路径分析工具可执行关键路径分析。在某些情况下,在过程400的配置之后,关键路径分析工具可自动触发计算设备来开始在使用条件中操作,诸如通过执行重启操作,使得开机使用场景可被观察到并被分析,或启动应用,使得应用启动使用场景可被观察到。然而,在其它情况中,可设置关键路径分析工具以监视并分析使用场景,而在计算设备下一次进入使用场景(按用户请求或按照任何其它方式)时,监视和分析可被执行。无论计算设备如何开始在使用场景中操作,一旦计算设备开始在使用场景中操作,监视和分析就开始。图5示出了可被实现来在使用场景期间监视和分析计算设备的操作,包括对计算设备的使用场景执行关键路径分析而实现的过程的一个示例。如上所述,使用场景可对各个计算设备在某些方面中变化,且可对计算设备在使用场景中操作的各个时间变化,且因此,在关键路径期间执行的活动可对各个计算设备改变。这些变化可取决于计算设备在该使用场景中操作时计算设备的配置。通过监视在特定计算设备在使用场景中使用期间发生的事件并通过分析这些事件,可标识在使用场景期间执行的操作。根据操作,可标识在使用场景期间执行的活动,且根据活动,可确定该特定计算设备在那时的关键路径。根据关键路径以及在关键路径的活动期间执行的操作,可确定影响使用场景的性能的、对配置的改变,并向用户建议这些改变。图5的过程500包括对关键路径分析的监视和分析的各个步骤。图5的监视在框502和504中执行。在框502中,计算设备在使用场景中使用并执行作为使用场景的一部分的各个操作。在框504中,在使用场景期间由于对其请求了踪迹生成的事件的发生而生成踪迹。分析在框506中开始并可以在任何适当的时间进行。在某些情况中,分析可在计算设备停止在使用场景中操作之后开始,而在其它情况中,分析可在使用场景期间开始。计算设备可结束使用场景,因为使用场景的操作已被全部执行(例如对开机使用场景,计算设备被启动)或因为使用场景因某种方式被中断。当分析在使用场景结束之前开始时,可在生成踪迹时分析它们。在框506,分析在计算设备的操作期间生成的踪迹以确定踪迹所涉及的事件。踪迹与关键路径分析工具对其请求生成踪迹的事件相关,且关键路径分析工具从而应了解对其生成了踪迹的所有事件。基于这种知识,关键路径分析工具应能够标识每一踪迹所涉及的事件。在框508,在框506中标识的事件可用于确定在使用场景期间执行的操作,并根据操作确定在使用场景期间执行的活动。配置(例如,经由初始化文件)关键路径分析工具的信息可标识事件、操作和活动之间的关系,使得事件可作为已经执行操作和/或活动的信号来对待。信息对其标识与操作和事件的关系的活动是形成关键路径的一部分的互动。因此,通过标识在使用场景期间执行的活动,可标识那时该计算设备上该使用场景的关键路径。一旦根据事件、操作和活动标识了特定计算设备上的使用场景的关键路径,可在框510中分析关键路径。具体地,可在框510中分析关键路径以确定在关键路径的活动的操作中是否存在对关键路径的性能具有影响的任何行为模式。如上所述,对关键路径的性能具有影响的行为模式可在整体上对使用场景的性能具有影响。从而,如果可作出影响这些行为模式的改变,则这些改变也可影响关键路径以及使用场景的性能。更具体地,如果行为模式对关键路径的性能具有负面影响且可作出减轻或消除该负面影响的改变,则该改变将对关键路径和使用场景的性能具有正面影响。对性能的这种正面影响也可对终端用户的体验具有正面影响。从而,框510的分析包括标识关键路径的活动的操作中、对关键路径的性能具有影响的行为模式。这样的行为模式包括影响使用场景的操作的定时的行为中的模式以及影响使用场景期间资源消耗的行为中的模式。影响定时的行为例如可引起操作的延迟或缓慢执行。影响定时的这种行为包括等待条件,其中在进程/线程等待另一进程/线程的操作完成时,该进程或线程保持在等待状态中。影响资源消耗的行为例如可导致这些资源的暂时耗尽,这将阻止其它进程/线程获取资源且因此阻止这些其它进程/线程执行,这可引起操作或其它操作中的延迟,而这可引起活动中的延迟。可消耗的这种资源包括处理器时间、存储器以及通信带宽(本地总线带宽或网络带宽)等。作为框510中的第一步骤,在框512中,在框504中收集的踪迹可聚集地审阅以确定踪迹之间的关系。例如,一旦分析了踪迹,性能分析工具可根据踪迹中包含的信息确定在关键路径期间执行的进程和线程之间的关系。每一踪迹可包含关于特定进程或特定线程、或进程和线程的函数的信息。然而,标识踪迹之间的关系可协助标识执行的函数、进程和线程的链。例如,通过聚集地审阅信息,可标识在活动或活动一部分期间执行的函数或进程的特定序列,这被称为链。这样的链可能对标识延迟的根本原因是有用的,诸如标识若干其它函数/线程/进程均在等待完成的特定函数或进程。审阅单独的踪迹可标识函数或进程被延迟,但可能不提供原因。相反,通过标识关系和链,可标识链中均在等待一个函数/进程完成的一组函数/进程。其它进程/函数在等待的这一个进程/函数可能是其它延迟的根本原因。按照这种方式,可标识延迟的根本原因。类似地,审阅踪迹可标识资源消耗的问题的根本原因,诸如标识使用大量资源并阻止计算设备向其它进程分配资源的特定进程。例如,踪迹可标识一个进程在执行状态花费长时间但无法执行操作因为在处理器上该进程未被分配时间。聚集地审阅踪迹可标识在那时,另一进程正在使用大量处理器时间,这是其它进程未获取处理器时间的根本原因。标识某时的进程链以及这些进程消耗的资源与仅标识某些进程不能获取资源相比,可提供更多信息。从而,作为第一步骤,可分析踪迹来确定踪迹之间的关系并标识链。按照这种方式一起分析的踪迹可以是与在框508中标识的各个活动的操作相关的踪迹。通过这样做,可在每一活动内标识潜在问题的根本原因,而可对关键路径的每个活动标识解决方案。踪迹的聚集分析可按照任何合适的方式来进行。在其它情况中,可使用现有的性能分析工具。例如,某些实施例可使用作为华盛顿州雷德蒙市微软公司提供的Microsoft Windows Performance Toolkit (性能工具包)的一部分的 xperf 工具来对踪迹数据执行性能分析。其它实施例可使用不同的性能分析工具或可应用任何已知的性能分析过程。作为框510的分析中的第二步骤,在框514,可在框512中确定的数据中标识不正常的行为。例如,标识导致高于活动和/或操作的正常水平的延迟和/或资源消耗水平的行为。这种标识可使用关于已经被包括在初始化文件中的使用场景或使用场景的活动的统计数据来进行。这些统计可与活动的延迟或资源消耗水平进行比较,以根据统计数据标识高于平均或按照任何其它方式异常的延迟和资源消耗水平。这种比较可用于过滤掉处于正常范围或低于阈值的延迟和资源消耗水平,使得不花费时间来分析正常延迟或正常资源消耗。作为框510的分析中的第三步骤,在框516,在活动的操作中标识与框514中标识的不正常行为相关的行为模式。可在活动的操作中标识检测行为的行为模式。标识行为模式可按照任何合适的方式进行,包括使用以下结合图6讨论的示例性技术。在一些实施例中,标识行为模式可包括标识已知模式的一个或多个出现和/或标识在活动的操作或关于操作的信息中不是先前已知的模式。这样的模式可对应于已知的行为模式,因为行为模式可能先前已经被标识为对应于计算设备在使用场景期间的好或坏的行为。在行为模式仅在活动的操作中出现一次时可标识已知模式,使得行为模式不必是活动中操作的重复。作为另一示例,标识不是先前已知的模式可包括检查操作以试图标识操作或关于操作的信息(如与一个或多个操作相关联的链)之间的重复或共同性。标识共同性可包括标识操作和/或链之间的任何合适的共同特征。例如,如果标识了包括具有延迟的链的多个操作,链具有作为根本原因的特定进程的特定函数,则链之间的共同性可被标识为共同性以及操作中的新模式。在框516中标识操作中的行为模式之后,过程500结束。在过程500之后,如下更详细讨论地,可向用户标识框516中标识的行为模式,且可向用户标识关于如何改变计算设备的配置以减轻或消除行为模式的影响的建议。以下结合图7更详细地讨论这样的标识过程。图6示出了用于标识当在使用场景中使用时计算设备的活动的操作中的行为模式的一种示例性技术,这种标识可基于对操作和/或关于操作的信息的分析。在实现类似于图5的过程500的过程的实施例中,图6的过程600可被实现为框516的处理的一部分。
在过程600的开始之前,在使用场景中操作计算设备,在使用场景期间生成踪迹,并分析踪迹以标识踪迹之间的关系以及链中所指示的延迟和资源消耗的根本原因。另外,基于事件标识执行的操作,并基于操作标识执行的链和事件。过程600基于活动的操作以及关于操作的信息标识活动中存在的行为模式。过程600在框602中开始,其中为要分析行为模式的每一活动启动检查活动的操作的循环。要分析的活动可以是包括异常延迟或异常资源消耗的那些活动,如以上结合图5的框514所讨论的。在框604,关于活动或活动的操作的信息的至少一些被用于判断操作是否匹配已知的行为模式。每一已知的行为模式可与可用于标识已知行为模式的操作的特征或操作的链的特征相关联。例如,与活动期间已知水平的资源消耗结合的活动的操作的已知序列可标识已知行为模式。操作和/或关于操作的信息的这些特征可被包括在已知行为模式的签名中。通过判断已知行为模式的签名在计算设备在使用场景期间的操作中是否可见,可作出关于计算设备的操作是否匹配已知行为模式的判断。从而,在框604中,将关于框602中所选的活动的信息与已知行为模式的性能签名进行比较,以便判断行为模式是否在活动的操作或关于操作的信息中可见。关于操作的信息可包括关于与操作相关的链的信息,如该链的函数、进程、延迟或资源消耗水平,或可包括关于操作的执行时间、在操作期间消耗的资源以及与该操作一起执行的其它操作的信息。关于操作的信息还可包括关于通过其来标识操作的事件的信息或从与操作相关的踪迹得到的任何合适的信息。链与已知行为模式的签名的比较可按照任何合适的方式执行。在某些情况中,可在关键路径分析工具正在评估的计算设备上本地维护签名的数据集,或在服务器上远程维护签名的数据集,或在任何其它位置中维护。关于框602中所选的链的信息可与数据集中的签名进行比较以判断是否存在匹配。在框606,通过比较每一已知行为模式的签名与关于活动的操作的信息,作出关于框602中所选的活动的操作是否匹配任何已知的行为模式的判断。如果否,则过程600继续至框610。然而,如果操作匹配已知行为模式,则可使用已知行为模式来标识配置中可对计算设备作出以影响计算设备在使用场景中的性能的潜在改变。每一已知行为模式可与配置中的改变相关联。例如,配置中的改变可以是对软件的更新,这种更新可减少函数或进程中的延迟或减少软件消耗的资源以便影响计算设备的性能。配置中的改变可被设计成解决计算设备上与已知行为相关联的已知性能问题,而行为模式的签名可以是这些性能问题的征兆。因此,当在关于活动的操作的信息中观察到签名时,配置中的改变于是可被认为适用于计算设备。从而,在框608,与每一匹配的行为模式相关联的配置中的改变可被添加到要向用户建议的一组配置中的改变中。框610中,作出关于是否存在要针对已知行为模式进行审阅的更多活动的判断。如果是,则过程600返回至框602以选择另一活动。如果否,则过程600继续来评估活动以判断操作作为整体是否包含任何新的行为模式。如上所述,已知行为模式可与可被设计成解决已知性能问题的已知配置改变相关联。然而,可能存在不对应于已知行为模式的其它性能问题。在框612,操作被一起审阅以标识链之间的共同性,并且通过这样做来标识新的行为模式。在框612审阅的操作可以是那些与高于阈值的延迟或资源消耗相关的操作,诸如图5的框514中标识的操作。例如,可审阅操作来判断在操作中是否存在任何类型的重复,无论是在活动内还是活动之间。这样的重复可以是计算设备的配置中能够用配置中的改变解决的潜在性能问题的信号。例如,如果多个操作或关于多个操作的信息指示各操作因等待同一进程的同一函数完成执行而被延迟,则这可以是该进程的该函数中的潜在性能问题的信号。类似地,如果关于操作的信息指示同一进程的同一函数正在使用大量资源,如大量存储器或大量处理器事件,则这可以是该函数/进程中潜在性能问题的信号。通过向用户标识潜在性能问题,可检查函数/进程,且可对函数/进程作出更新以解决性能问题。在框614,一旦审阅了操作和活动,已经从操作中的共同性标识的任何潜在的新行为模式被添加到要对用户作出的建议的列表中。与可向用户建议已知的对配置改变的已知行为模式不同,可能不存在要对这些新行为模式作出的、已知的对配置的改变。相反,关于新行为模式的信息可被添加到建议列表,来作为对计算设备的特定组件调查要对配置作出的改变的建议。在框614中添加到建议列表的信息可以是标识其中检测到共同性的操作和/或活动的信息和检测到的性能问题(例如,延迟或资源消耗),以及对用户判断什么是性能问题有用的其它信息,诸如来自与操作相关联的链和/或踪迹的信息。一旦关于新行为模式的信息被添加到框614的建议列表,过程600就结束了。在编译了包括关于可如何改变计算设备的配置以及要调查的潜在改变的建议的建议列表之后,可向用户提供建议。可按照任何合适的方式,包括经由任何合适的用户界面,作为报告向用户提供建议。图7示出了用于向用户提供这样的建议的过程700的一个示例。过程700在框702中开始,在那里,评估对配置的改变和/或对计算设备的配置的潜在改变的建议,以确定可因作出改变或潜在改变而导致的计算设备的性能改进。该性能改进可以按照任何合适的方式标识。性能改进可与在计算设备在使用场景中的操作期间检测到的并用来检测行为模式的性能有关,诸如先前标识的实际延迟或消耗的资源,如上所述。如果建议与已知行为模式相关,则已知行为模式可与已知的性能改进相关联,在框704,基于框702的评估,根据建议对计算设备在使用场景中的性能的潜在影响对建议排序。在框706,检查计算设备在使用场景中的总体性能,并将其与在该使用场景中操作的其它类型的计算设备的性能的基准进行比较。可维护按照使用场景的、指示多种类型的计算设备在使用场景中的各个性能度量的基准,包括总执行时间和总资源消耗。这些基准可按照任何合适的方式维护,包括通过在使用场景中执行多个计算设备以及收集关于计算设备的类型的信息。计算设备可根据计算设备的配置按照类型进行组织,包括硬件配置,使得在某些方式类似的计算设备可彼此比较以及与较不类似的其它计算设备比较。可进行框706的比较,以便向用户提供关于具有当前配置的计算设备与其它类似的计算设备以及其它计算设备比较起来如何的信息。采用这种信息,用户能够更好地评估是否要作出在框704中排序的建议列表中推荐的对配置的改变。例如,当用户是准备批量制造计算设备的工厂工人时,工厂工人可能不想要对配置作出许多改变。然而,如果计算设备与其它设备的比较指示,采用当前配置,计算设备与竞争者相比执行得较差,则工厂工人更可能对配置作出改变以改进性能以及改进用户体验。在框708,经由任何合适的界面向用户输出排序的建议列表以及框706的比较的结果。过程700随后结束。以上描述了可用于评估计算设备在使用场景中的性能以标识可对计算设备的配置作出的、影响性能的改变并向用户建议这些改变的技术的示例。通过在使用场景中操作计算设备,可收集并使用关于计算设备的当前配置的信息来标识可作出的改变。可基于当前配置与已知行为模式的签名的比较来标识改变,已知行为模式可与可改进性能的已知配置改变相关。另外,可作为可能的其它方式建议新的行为模式以改变配置来改进性能。如上所述,此处描述的技术可按照任何方式在任何时间使用以标识改变计算设备的配置的方式。在一些情况中,技术可由设法改进个人计算设备的性能的家庭用户使用。在其它情况中,技术可在工厂环境中使用来标识改变要大量生产或正在大量生产的计算设备的配置的方式。图8示出了使用根据此处所述的某些原理操作的技术来制造计算设备的过程的一个不例。在过程800开始之前,设计并定稿计算设备的硬件和软件,使得可制造包括硬件和软件计算设备。在一些情况中,在配置定稿之后,可对硬件和/或软件作出一些改变。例如,在定稿软件后,要生产计算设备的工厂或要出售计算设备的供应商可能同意在计算设备上在所设计的要包括在计算设备中的软件之上安装附加软件。这种附加软件可对配置作出影响计算设备的性能的改变。图8的过程800可用于标识可对配置作出的(例如,要对硬件和/或软件作出的改变)、影响性能(包括改进性能)的改变。过程800在框802开始,其中接收硬件和软件规格。硬件和软件规格可包括所设计并定稿的计算设备的配置以及工厂或供应商作出的任何改变。在框804,根据框802中接收的规格组装计算设备,且在框806,执行在一个或多个使用场景中测试框804的计算设备并标识可对配置作出的、以影响性能的改变的过程。在框808,可作出的改变由用户接收,并对配置作出一个或多个改变。在框810,基于框808中标识的经改变的配置制造多个计算设备。过程800随后结束。根据此处描述的原理操作的技术可通过任何适合的方式来实现。包括在以上讨论中的是示出可评估计算设备在使用场景中的性能并建议要对计算设备的配置作出的、影响性能的改变的各个过程的步骤和动作的一系列流程图。以上的流程图的处理和判定框表示可被包括在实现这些各种过程的算法中的步骤和动作。从这些过程导出的算法可以被实现为与一个或多个多用途处理器集成并指导其操作的软件、可以被实现为诸如数字信号处理(DSP)电路或专用集成电路(ASIC)等功能上等效的电路、或可以用任何其他适合的方式来实现。应当理解,此处包括的流程图未描绘任何特定电路的句法或操作,也未描绘任何特定的编程语言或编程语言类型的句法或操作。相反,各流程图示出了本领域普通技术人员可用于制造电路或实现计算机软件算法来执行实现此处描述的各类型的技术的特定装置的处理的功能信息。还应当理解,除非另外指明,否则每一流程图中描述的步骤和动作的特定序列仅是可被实现的算法的说明,并且可以在此处描述的原理的各实现和实施例中变化。因此,某些实施例中,此处描述的技术可以用被实现为软件的计算机可执行指令来具体化,软件包括应用软件、系统软件、固件、中间件、或任何其他适合类型的软件。这样的计算机可执行指令可使用多种适合的程序设计语言和/或程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。当此处描述的技术体现为计算机可执行指令时,这些计算机可执行指令可以以任何合适的方式来实现,包括被实现为多个功能工具,每个功能工具都提供为了完成根据这些技术来操作的算法的执行所需的一个或多个操作。不论是如何实例化的,“功能工具”都是计算机系统的一个结构组件,其在与一个或多个计算机集成并由其执行时使得该一个或多个计算机执行具体操作任务。功能工具可以是软件元素的一部分或是整个软件元素。例如,功能工具可被实现为进程的函数、或被实现为离散进程、或被实现为任何其他合适的处理单元。如果此处描述的技术被实现为多个功能工具,则每一功能工具可以按其自己的方式来实现;不必将所有功能工具以相同的方式来实现。另外,这些功能工具可在适当时并行或串行执行,并且可使用在其上执行这些模块的计算机上的共享存储器、使用消息传递协议、或以任何其他合适的方式,来在彼此之间传递信息。一般而言,功能工具包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,功能工具的功能可以如它们在其中操作的系统所需来组合或分布。在某些实现中,实现此处的技术的一个或多个功能工具可一起形成完成的软件包,如作为诸如Microsoft Windows Mult1-Point Server 8 (多点服务器)等软件程序应用。在替换实施例中,这些功能工具可适用于与其他不相关的功能工具和/或进程交互,来实现软件程序应用。在其他实现中,功能工具可适用于以形成操作系统的方式来与其他功能工具交互,操作系统包括可从华盛顿州雷蒙德市的微软 公司获得的Windows 操作系统。换言之,在某些实现中,功能工具可以可替代地被实现为操作系统的一部分或在操作系统外部实现。用于执行一个或多个任务的某些示例性功能工具已在此处描述。但应当理解,所描述的功能工具和任务划分仅是可实现此处描述的示例性技术的功能工具的类型的说明,且各实施例不限于以任何特定数量、划分、或功能工具类型来实现。在某些实现中,所有功能可在单个功能工具中实现。应当理解,在某些实现中,此处描述的功能工具中的某一些可以与其他功能工具一起实现或分开实现(即,作为单个单元或分开的单元),或者这些功能工具中的某一些可不被实现。在某些实施例中,实现此处描述的技术的计算机可执行指令(但被实现为一个或多个功能工具或以任何其他方式实现时)可以被编码在一个或多个计算机可读介质上来向该介质提供功能。计算机可读介质包括诸如硬盘驱动器等磁介质、诸如压缩盘(CD)或数字多功能盘(DVD)等光介质、持久或非持久固态存储器(例如,闪存、磁RAM等)、或任何其他合适的存储介质。这一计算机可读介质可以用任何合适的方式来实现,包括作为以下图9的计算机可读存储介质906 (即,作为计算设备900的一部分)或作为独立的、单独的存储介质。如此处所使用的,“计算机可读介质”(也称为“计算机可读存储介质”)指的是有形存储介质。有形存储介质是非瞬态的,且具有至少一个物理的结构组件。如此处所使用的,在计算机可读介质中,至少一个物理的结构组件具有至少一个物理性质,该物理性质可在用嵌入的信息创建该介质的过程、在其上记录信息的过程、或用信息来编码介质的任何其他过程期间以某种方式更改。例如,计算机可读介质的物理结构的一部分的磁化状态可在记录过程中更改。在其中各技术可被具体化为计算机可执行指令的某些但非全部实现中,这些指令可以在任何合适的计算机系统中操作的一个或多个合适的计算设备上执行。包括这些计算机可执行指令的功能工具可以与单个多用途可编程数字计算机装置、共享处理能力且联合执行此处所描述的技术的两个或更多多用途计算机装置的协作系统、专用于执行此处所描述的技术的单个计算机装置或计算机装置的协作系统(位于同处或在地理上分布)、用于实现此处所描述的技术的一个或多个现场可编程门阵列(FPGA)、或任何其他合适的系统集成,或指导这些系统的操作。图9示出了计算设备900形式的可用于实现本文描述的技术的系统中的计算设备的一个示例性实现,然而其他实现也是可能的。应理解,图9既不旨在是对用于依照本发明描述的原理操作的计算设备的必要组件的描绘,也不旨在是全面描绘。计算设备900可包括至少一个处理器902、网络适配器904、以及计算机可读存储介质906。计算设备900例如可以台式或膝上型个人计算机、个人数字助理(PDA)、智能移动电话、服务器、无线接入点、或者其他联网元件、或者任何其他合适的计算设备。网络适配器904可以是使得计算设备900能够通过任何合适的计算网络来与任何其他合适的计算设备进行有线和/或无线通信的任何合适的硬件和/或软件。计算网络可包括无线接入点、交换机、路由器、网关、和/或其他联网设备,以及用于在两个或更多计算机之间交换数据的任何合适的有线和/或无线通信介质,包括因特网。计算机可读介质906适用于存储要由处理器902处理的数据和/或要由处理器802执行的指令。处理器902能够处理数据和执行指令。这些数据和指令可被存储在计算机可读存储介质906上,并且例如可以启用计算设备900的各组件之间的通信。存储在计算机可读存储介质906上的数据和指令可包括实现根据本文描述的原理操作的技术的计算机可执行指令。在图9的示例中,如上所述,计算机可读存储介质906存储实现各种工具并存储各种信息的计算机可执行指令。计算机可读存储介质906可存储关键路径分析装置908,该装置可使用以上讨论的任何示例性技术来对使用场景中的计算设备900执行关键路径分析。关键路径分析装置908可使用初始化文件908A来配置,该文件也可被存储在计算机可读存储介质906上。事件跟踪装置910可被存储在计算机可读存储介质906上,该装置可被配置成存储关于在事件发生时计算设备900的状态的信息,如上所述。已知行为模式和已知行为模式的签名的数据集912也可被存储在计算机可读介质906 上。尽管未在图9中示出,但计算设备可另外具有一个或多个组件和外围设备,包括输入和输出设备。这些设备主要可用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏和用于可听地呈现输出的扬声器或其他声音生成设备。可用于用户界面的输入设备的示例包括键盘和诸如鼠标、触摸板和数字化输入板等定点设备。作为另一示例,计算设备可以通过语音识别或以其他可听格式来接收输入信息。已经描述了其中各技术以电路和/或计算机可执行指令来实现的各实施例。应当理解,某些实施例可采用方法的形式,已经提供了其至少一个示例。作为该方法的一部分所执行的动作可以按任何适合的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实施例中被示为顺序动作。以上描述的各实施例的各个方面可单独、组合或以未在前述实施例中具体讨论的各种安排来使用,从而并不将其应用限于前述描述中或附图中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其他实施例中描述的各方面组合。
在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对“包括”、“包含”、“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其他项目。描述了至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。这样的更改、修改和改进旨在是本发明的一部分,且旨在处于此处描述的原理的精神和范围内。从而,上述描述和附图仅用作示例。
权利要求
1.一种方法,包括 操作至少一个已编程的处理器来执行一组动作,所述至少一个已编程的处理器用标识所述一组动作的处理器可执行指令来编程,所述一组动作包括 分析关于在使用场景中使用计算设备期间生成的计算设备的操作的信息,以标识涉及所述计算设备在所述使用场景中的性能的至少一个行为模式;以及 至少部分基于所述至少一个行为模式,建议对所述计算设备的配置的、影响所述计算设备在所述使用场景中的性能的至少一个改变。
2.如权利要求1所述的方法,其特征在于 所述分析包括将所述关于操作的信息的至少一些与至少一个已知行为模式进行比较,其中至少一个已知行为模式中的每一个与将影响所述计算设备在所述使用场景中的性能的已知配置改变相关联,且 所述建议包括,当在所述关于操作的信息与第一行为模式之间标识了匹配时,建议与所述第一行为模式相关联的第一已知配置改变。
3.如权利要求2所述的方法,其特征在于 将所述关于操作的信息的至少一些与至少一个已知行为模式进行比较包括,将所述关于操作的信息的至少一些与同所述第一已知行为模式相关的问题的第一征兆进行比较,且建议第一已知配置改变包括,在所述关于操作的信息的至少一些匹配所述第一征兆时建议所述已知解决方案作为所述第一已知配置改变。
4.如权利要求1所述的方法,其特征在于 所述分析包括分析在所述关于操作的信息中标识的操作链以标识链之间的至少一个共同性,所述至少一个共同性涉及至少一个软件装置在所述计算设备上的执行;且 所述建议包括在标识至少一个共同性时,建议要对所述至少一个软件装置作出的改变。
5.如权利要求1所述的方法,其特征在于 所述一组动作还包括在所述计算设备在所述使用场景的使用期间收集当事件发生时的跟踪数据,且 分析关于操作的信息包括分析踪迹。
6.如权利要求5所述的方法,其特征在于,所述一组动作还包括 基于标识如何监视所述计算设备在所述使用场景中的操作的初始化文件,请求在所述事件发生时收集踪迹,所述初始化文件标识要对其收集踪迹的事件。
7.如权利要求6所述的方法,其特征在于 所述初始化文件还标识所述使用场景的活动类型和操作,所述活动类型中的每一个对应于至少一个操作,所述操作中的每一个与活动相关;且所述一组动作还包括 分析所述踪迹以标识在所述计算设备在所述使用场景期间中使用期间发生的一组操作; 分析所述一组操作以确定形成所述计算设备上的所述使用场景的一部分的一组活动;以及 对所述一组活动中的每一活动,标识在所述活动期间出现的行为模式。
8.至少一个用计算机可执行指令编码的计算机可读存储介质,所述计算机可执行指令在被执行时使得计算机执行一种方法,所述方法包括 分析关于在计算设备在使用场景中使用期间生成的计算设备的操作的信息,以标识在所述使用场景期间执行的一组操作; 将关于所述一组操作的信息与至少一个已知行为模式进行比较,其中至少一个已知行为模式中的每一个与将影响所述计算设备在所述使用场景中的性能的已知配置改变相关联; 分析所述一组操作以标识所述一组操作中各个操作之间是否存在至少一个共同性,所述至少一个共同性与至少一个软件装置在所述计算设备上的执行相关;以及 建议对所述计算设备的配置的、影响所述计算设备在所述使用场景中的性能的至少一个改变,其中所述建议包括 当在所述一组操作与第一已知行为模式之间标识了匹配时,建议与所述第一已知行为模式相关联的第一已知配置改变;以及 当在所述一组操作中的各个操作之间存在至少一个共同性时,建议可对与所述至少一个共同性相关的所述至少一个软件装置作出改变。
9.如权利要求8所述的至少一个计算机可读存储介质,其特征在于 将所述一组操作与至少一个已知行为模式进行比较包括,将关于所述一组操作中的各个操作的信息与对其存在已知解决方案的问题的征兆进行比较,且 建议第一已知配置改变包括,在所述关于操作的信息的至少一些匹配所述征兆时建议所述已知解决方案。
10.如权利要求8所述的至少一个计算机可读存储介质,其特征在于 所述方法还包括在所述计算设备在所述使用场景中的操作期间收集当事件发生时的踪迹,且 分析关于操作的信息包括分析所述踪迹。
全文摘要
本发明涉及分析计算设备在使用场景中的性能。此处描述了用于进行对在使用场景的关键路径期间执行的操作的自动分析并建议可改变计算设备的配置以改进使用场景的性能的方式的技术。计算设备可在各种使用场景中操作,用户可能尤其注意计算设备在某些使用场景中的性能。在这些使用场景中进行的操作的关键路径分析可用于标识使用场景的关键路径,根据关键路径可标识可对计算设备作出的、以影响性能的改变。一旦标识了可作出的改变,可对用户提出建议,使得用户能够在不太了解如何改进配置时对配置作出改变以影响性能。
文档编号G06F11/34GK103049366SQ20111037813
公开日2013年4月17日 申请日期2011年11月14日 优先权日2010年11月15日
发明者A·迪特里希, S·戈耶特, V·S·兰宁 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1