CN100504765C - 自治软件系统中的简表规格化 - Google Patents

自治软件系统中的简表规格化 Download PDF

Info

Publication number
CN100504765C
CN100504765C CNB2004100700325A CN200410070032A CN100504765C CN 100504765 C CN100504765 C CN 100504765C CN B2004100700325 A CNB2004100700325 A CN B2004100700325A CN 200410070032 A CN200410070032 A CN 200410070032A CN 100504765 C CN100504765 C CN 100504765C
Authority
CN
China
Prior art keywords
abridged table
executory application
application
actions
executory
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.)
Expired - Fee Related
Application number
CNB2004100700325A
Other languages
English (en)
Other versions
CN1581076A (zh
Inventor
M·J·欣德
P·F·斯威尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1581076A publication Critical patent/CN1581076A/zh
Application granted granted Critical
Publication of CN100504765C publication Critical patent/CN100504765C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

本发明提供了一种用于规格化为执行中的应用收集的简表,以便说明在收集了所述的简表之后施加于该执行中的应用的一个或多个动作的自治软件系统和方法,其包括:通过使用所述的简表和所述的一个或多个动作预测对该执行中的应用施加所述一个或多个动作的影响;并且根据所述预测的影响调整该简表以形成规格化简表。多个不同的简表使用者,例如,相移检测器、动作评估器以及规格化控制器可以使用所述的规格化简表以改进该执行中的应用的行为。此外,可以实现在线的可视化工具以便图形化地表示该规格化的简表以及收集到的简表和该规格化简表之间的不同。

Description

自治软件系统中的简表规格化
技术领域
本发明一般地涉及自治(autonomic)软件系统。更具体地,本发明涉及可以规格化从执行中的应用处获取的简表(profile),从而说明在收集了所述简表之后由该自治系统施加于该执行中的应用上的动作,以便改进该应用的后续行为的自治软件系统和方法。
背景技术
在自治软件系统中,“改进”应用的决策是在线做出的,即,在该应用执行时做出的。更具体地,自治软件系统在当前应用执行过程中利用应用过去的行为预测该应用将来的行为。利用预测的该应用的将来行为,自治软件系统可以对该应用施加一种或多种动作(下文中,为了简便将使用“动作”)以改进其将来的行为。然而,自治软件系统是对时间敏感的且具有如下的相互抵触的约束:1)确定要执行何种动作并且执行那些动作会与该应用的执行抢夺时钟周期(在该应用正在执行的同时执行这些动作);以及2)在采取动作之前该应用执行的时间越长,则该应用没有获得改进收益的时间就越长。
典型地,自治软件系统利用简表分析(profiling)来确定该应用的行为,然后利用简表分析信息预测该应用的将来行为,并且采取动作以改进该应用的执行。自治软件系统考虑施加于该应用的动作通常决定了该自治软件系统需要特别地获得的简表分析信息。例如,对一方法被该应用调用的次数的简表分析可以被该自治软件系统用来确定该方法是否应该为内联(inlined)的,即,将该应用体内对该方法的调用以该方法实际的语句代替,由此消除对该方法的调用以便改进该应用。作为另一个例子,对应用花费在一方法上的时间的简表分析可以被该自治软件系统用来确定该方法是否应该被优化。作为最后一个例子,对分布式的对象之间的通信的简表分析可以被自治软件系统用于确定哪些分布式对象应该在机器之间迁移,由此将经常被访问的分布式对象本地化到那些访问它们的机器上。
如上所述,自治软件系统可以通过该自治软件系统基于从该执行中的应用中获得的简表分析信息(简表)而施加于该应用的动作来改变应用的运行时特征。所采用的动作可以引起为该执行中的应用而收集的后续的简表分析信息的改变。在这种情况下,由于施加这些动作而发生改变的应用的代码区将花费更多或更少的执行时间,并且将更加频繁或更加不频繁地出现在后续的基于时间的简表分析信息中。然而,从执行中的应用获得的简表分析信息没有说明由该自治软件系统在收集了所述的简表之后施加于该执行中的应用上的动作。因此希望相对于由该自治软件系统施加的动作将简表规格化,从而使得所施加的动作的影响被结合到该规格化的简表中,由此允许自治软件系统或是在将规格化的简表与在施加了所述的动作之后该应用行为的后续的基于时间的简表相比较时,或是在给定一规格化的简表的情况下确定应选择的下一个最好的动作时,可以做出更好的决策。相反,不希望的是,如果没有相对于由该自治软件系统施加的动作将简表规格化,则比较所述简表与后续简表(在其间施加了动作),就可能导致自治软件系统作出错误的决策。应该指出的是,除了基于时间的分析之外的其它简表分析技术是公知的并且可以运用于本发明。
例如,可以比较后续的简表以便检测该应用行为中的变化。该应用所固有的、执行中的应用的行为的变化被称为相移(phase shift)。该应用的设计以及结构可以被概念化为一系列的相(phase),其中该应用的计算从一个相进入到另一个相。对于自治软件系统,在该应用执行时检测相移是重要的,这是因为相移可以表明不同的资源需求。不幸的是,如果简表没有相对于由该自治软件系统施加到该执行中的应用上的动作而被规格化,则该自治软件系统不能确定该应用的行为变化是由于该应用行为的固有变化而产生的还是由所述的动作引起的。一般地,可以通过比较在一系列给定时间间隔内该执行中的应用的行为来检测相移,在所述的一系列给定时间间隔内执行一系列运行时事件。如果每个时间间隔内的行为都有某种足够量的不同,则可能已经发生了相移或正在发生相移。否则,如果该行为没有根本的不同,则该应用可能在以一稳定的状态运行。然而,如上所述,当该应用在飞行(fly)中(即,在线)被改动时,对于自治软件系统来说检测相移更加困难,这是因为在几个时间间隔之间的应用的行为可能会因为由自治软件系统所做的改动而不是因为从一个相到另一个相的相移而发生变化。
图1示出了现有自治系统100的示意图,其说明了现有自治系统的前述缺点。更具体地,在现有自治软件系统100中,通过简表分析代理104在运行时环境102中执行应用。该简表分析代理104对该执行中的应用106进行简表分析,以便产生简表110。该简表被传送给现有技术的控制器114以及相移检测器124。控制器114通过控制信号108控制何时收集简表110的定时。应当注意,在控制器114通过控制信号108指示时,可以通过简表分析代理104收集多个简表。一般地,控制器114包括行为调整器116,其通过对执行中的应用施加一个或多个动作112来调整该执行中的应用106的行为。应当注意,行为调整器116也可以如下所述不对该执行中的应用施加动作。所述的行为调整器116包括分析器118、选择器120以及应用器122。分析器118接收和分析简表110。更具体地,分析器118通过简表110接收原始数据并将其转变为可由控制器114使用的一组数据。该组数据可以包括一系列基本块、方法ID和相关联的执行时间对、指令的高速缓存不命中的序列等等。例如,分析器118可以分析原始数据,诸如多个方法标识符,并且将该原始数据转变成规范的形式,例如转变为方法标识符的加权组的形式,其中每个方法标识符的权重等于该方法标识符在原始数据中出现的次数。选择器120从分析器118处接收该组数据并且选择一个或多个动作112施加于执行中的应用106,这样能够有助于改进执行中的应用的行为。在其决定中,选择器120可以使用花费-收益模型确定优化一个方法,例如由方法标识符表示的方法的成本,是否小于从该方法的后续执行中获得的预期的优化收益,即,优化该方法是否能够提高该应用的性能。选择器120然后将所选择的一个或多个动作112传送到应用器122,应用器122将该一个或多个动作112施加于执行中的应用106。应当注意,该选择器基于花费-收益模型可以不选择动作,在这种情况下应用器122将不施加任何动作。由Aronld,Mathew等撰写的文章(“AdaptiveOptimization in Jalapena JVM”Proceedings of the ACM Conference onObject-Oriented Programming System,Language,and ApplicationsOct.2000)中披露了前述的例子。在一随后的预先确定的时间间隔内,该简表分析代理104可以在控制信号108的控制下收集执行中的应用106的其它简表110。从图1的现有的自治系统100中可以清楚地看到,自治系统100的缺点是控制器114和相移检测器124都不具有使用从该执行中的应用获得的简表110的益处,该益处就是,在从执行中的应用106收集简表110之后,且在从执行中的应用106收集后续的简表之前,说明被施加于执行中的应用106上的一个或多个动作112。
因此在本领域中需要提供一种自治软件系统和方法,所述的自治软件系统和方法可以规格化或调整从执行中的应用处获得的简表,从而说明在收集了所述的简表之后由该自治软件系统施加于该执行中的应用上的一个或多个动作,以便改进该执行中的应用的后续行为。
发明内容
本发明的一个目的在于提供一种自治软件系统和方法,所述的自治软件系统和法能够将为执行中的应用收集的简表规格化,以便说明该自治软件系统在收集了该简表之后施加于该执行中的应用之上的动作。
根据本发明的一个实施例,提供了一种用于将为执行中的应用收集的简表规格化,以便说明在收集了该简表之后施加于该执行中的应用之上的一个或多个动作的方法,该方法包括:通过使用所述的简表和所述的一个或多个动作预测对执行中的应用施加所述的一个或多个动作的影响;并且根据预测的影响调整该简表以形成规格化的简表。
根据本发明的另一实施例,提供了一种用于将为执行中的应用收集的简表规格化,以便说明在收集了该简表之后施加于该执行中的应用之上的一个或多个动作的系统,该系统包括:用于通过使用所述的简表和所述的一个或多个动作预测对执行中的应用施加所述的一个或多个动作的影响的预测器;以及用于根据预测的影响调整该简表以形成规格化的简表的调整器。
根据本发明的另一实施例,提供了一种方法,该方法用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后改进对该执行的应用中的相移的检测,该方法包括:为该执行中的应用收集第一简表;通过使用所述的第一简表和所述的一个或多个动作预测对执行中的应用施加所述的一个或多个动作的影响;根据预测的影响调整该简表以形成规格化的简表;对该执行中的应用施加所述的一个或多个动作;为该执行中的应用收集第二简表;并且通过使用所述的规格化的简表和所述的第二简表检测执行的应用中的相移。
根据本发明的另一实施例,提供了一种系统,该系统用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后改进对该执行的应用中的相移的检测,该系统包括:用于为该执行中的应用收集第一简表和第二简表的简表分析代理;用于通过使用所述的第一简表和所述的一个或多个动作预测施加于该执行中的应用上的所述一个或多个动作的影响的预测器;用于根据预测的影响调整第一简表以形成规格化的简表的调整器;用于对该执行中的应用施加所述的一个或多个动作的应用器;以及用于通过使用所述的规格化的简表和所述的第二简表检测执行的应用中的相移的相移检测器。
根据本发明的另一实施例,提供了一种方法,该方法用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后确定该执行中的应用的执行是否有所改善,该方法包括:为该执行中的应用收集第一简表;选择并对该执行中的应用施加一个或多个动作;通过使用收集的第一简表和所述的一个或多个动作预测施加于所述执行中的应用上的所选择的一个或多个动作的影响;根据预测的影响调整所述的第一简表以形成规格化的简表;为该执行中的应用收集第二简表;对照所述的规格化的简表评估所述的第二简表以确定该执行中的应用的执行是否有预期的改善;并且如果在该执行的应用中没有预期的改善,则施加一个或多个动作取消所述已经施加在该执行中的应用上的一个或多个动作。
根据本发明的另一实施例,提供了一种系统,该系统用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后确定该执行中的应用的执行是否有所改善,该系统包括:用于为该执行中的应用收集第一和第二简表的简表分析代理;用于选择将要施加于该执行中的应用上的一个或多个动作的选择器;用于通过使用收集的第一简表和所述的一个或多个动作预测施加于该在执行中的应用上的所选择的一个或多个动作的影响的预测器;用于根据预测的影响调整所收集的第一简表以形成规格化简表的调整器;用于对照所述的规格化的简表评估所述的第二简表以确定该执行中的应用的执行是否有预期的改善的动作评估器;以及用于施加所选择的一个或多个动作,并且用于,如果在该执行的应用中没有预期的改善,则施加一个或多个动作取消所述已施加的一个或多个动作的应用器。
根据本发明的另一实施例,提供了一种方法,该方法用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后改善该执行中的应用的执行,该方法包括:基于收集的简表在该执行中的应用上施加第一选定的动作;通过使用该收集的简表以及所述的第一选定的动作预测在该执行中的应用上施加第一选定的动作的影响;根据该预测的影响调整所收集的简表以形成第一规格化的简表;基于所述的第一规格化的简表或是后续的规格化的简表而在该执行中的应用上施加第二选定的动作;通过使用第一规格化的简表以及第二选定的动作预测在该执行中的应用上施加第二选定的动作的影响;根据该预测的影响调整第一规格化的简表以形成第二规格化的简表;并且为第二规格化简表和每个后续的规格化简表以及选定的动作重复所述施加、预测和调整步骤。
根据本发明的最后一个实施例,提供了一种系统,该系统用于调整为执行中的应用收集的简表,从而说明施加于该执行中的应用之上的一个或多个动作,以便在收集了所述的简表之后改善该执行中的应用的执行,该系统包括:用于通过使用该收集的简表以及第一选定动作预测在该执行中的应用上施加所述第一选定动作的影响的预测器;用于根据该预测影响调整该收集的简表以形成第一规格化简表的调整器;用于基于该收集的简表在该执行中的应用上施加所述的第一选定动作,基于该第一规格化简表在该执行中的应用上施加第二选定动作,并且为该执行中的应用重复施加来自每个后续的规格化简表的每个选定动作的应用器。
附图说明
对于本领域的技术人员来说,根据下面结合附图的详细描述,本发明的特征和优点将会变得更加清楚,其中:
图1表示了现有的自治系统,并且说明了现有的自治系统的缺点;
图2A表示了根据本发明的自治软件系统的第一个示例性实施例,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统采取的一个或多个动作;
图2B表示了根据本发明的自治软件系统的第二个示例性实施例,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统采取的一个或多个动作;
图2C表示了根据本发明的自治软件系统的第三个示例性实施例,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统采取的一个或多个动作;
图3A表示了由根据本发明的自治软件系统的上述三个实施例中的规格化控制器执行的示例性的规格化操作;
图3B表示了由根据本发明的自治软件系统的上述三个实施例中的规格化控制器执行的另一示例性规格化操作;
图4A表示自治软件系统的第一实施例的示例性方法流程图;
图4B表示自治软件系统的第二实施例的示例性方法流程图;
图4C表示自治软件系统的第三实施例的示例性方法流程图;
具体实施方式
本发明涉及自治软件系统及方法,所述的自治软件系统及方法能够规格化从执行中的应用处获得的简表,从而说明在收集了所述的简表之后由该自治软件系统施加于该执行中的应用上的动作,以便改进该应用的后续行为。
图2A是根据本发明的自治软件系统的第一个实施例200a的示例性图示,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统200a所采取的一个或多个动作。第一实施例的自治软件系统200a包括如下三个主要部件:简表分析代理104;规格化控制器202a;以及简表使用者(consumer)(即,相移检测器)216a。简表分析代理104在运行时环境102中执行应用106,并且基于来自规格化控制器202的控制信号108,简表分析代理104收集多个简表110。更具体地说,简表分析代理104在控制信号108的控制下,在一预先确定的时间间隔内收集执行中的应用106的行为的每个简表110,并且将收集到的简表110传送给本发明的规格化控制器202a以及简表使用者216a。用于收集简表110的最佳的预先确定的时间间隔是10毫秒。例如,可以简单地使用用户定时器中断在该预先确定的时间间隔或其它任意的特定用户要求的预先确定的时间间隔内完成简表的收集。简表分析代理104可以被实现为加入到应用的源代码中的插装代码,该源代码被编译成该执行中的应用106,或者通过监测该执行中的应用106在该运行时环境102中的执行而实现简表分析代理104。
进一步参考图2A,规格化控制器202a包括基于收集的简表110调整执行中的应用106的行为的行为调整器116。该行为调整器116包括分析器118、选择器204a以及应用器122。应当注意分析器118和应用器122与图1中的现有技术类似部件相似。如上所述,分析器118接收由简表分析代理104在预先确定的时间间隔内收集的简表110,并且产生一组数据,该数据在控制器202a中可以使用。然后分析器118将这组数据传送给选择器204a,选择器204a从这组数据中选择一个或多个动作206以改进执行中的应用106的行为。最后选择器204a将从这组数据中选择的所述一个或多个动作206传送给应用器122,应用器122将选定的一个或多个动作112施加于执行中的应用106。
仍然进一步参考图2A,规格化控制器202a包括简表规格化器208a,简表规格化器208a将收集的简表110规格化,以供简表使用者(相移检测器)按如下所述使用。简表规格化器208a包括预测器210,预测器210使用上面描述的花费-收益模型预测特定方法在执行时间上的预期的下降,还包括调整器212,调整器212用于根据预测调整或规格化收集到的简表110以便产生规格化简表214。应当注意,由简表分析代理104从执行中的应用106收集的简表110(以及后续的简表)还被传送给规格化控制器202a的简表规格化器208a。如图2A所说明的,行为调整器116的选择器204a不同于相应的现有技术的选择器120,其中该选择器204a不仅将选定的一个或多个动作206传送给应用器122,而且还将选定的一个或多个动作206传送给简表规格化器208a的预测器210。通过简表规格化器规格化收集到的简表110的示例将在后文中参考图3A和3B详细说明。简表规格化器208a的预测器210接收收集到的简表110以及由选择器204a选定的一个或多个动作206。然后在从该执行中的应用处获取后续的简表110之前,预测器210使用由选择器204a选定的一个或多个动作206,预测当由应用器122在该执行中的应用上施加了一个或多个动作206时,该执行中的应用的行为。如上所述,该预测包含对执行时间的预期下降的预测。预测器210将预测结果传送给调整器212,调整器212对简表110施加该预测结果以便产生规格化的简表214,所述的简表214被传送给简表使用者(相移检测器)216a,该简表使用者利用规格化的简表214以及后续收集的简表检测执行的应用106中的相移。如已经指出的,在自治系统200a中,简表使用者216a为相移检测器,其检测执行的应用106中的相移。然而,所述的简表使用者可以是任何其它的可以从规格化的简表216a中受益的系统部件。例如,简表使用者可以是在线的可视化工具,该工具以图形的方式描绘关于后续收集的简表以及/或当前简表的规格化简表是如何变化的。图2A清楚地说明了本发明的优点,其中,在从该执行中的应用106处收集后续的简表110之前,简表使用者216a受益于从执行中的应用106处收集的规格化的简表214,该规格化的简表将说明由行为调整器施加于该执行中的应用106上的一个或多个动作。相移检测器216a接收后续的简表110和规格化的简表214,并且可以更容易地确定在执行的应用106中的相移。这种确定可以通过比较后续简表110和规格化简表214的相似性完成。
图2B是根据本发明的自治软件系统的第二个实施例200b的示例性图示,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统200b所采取的一个或多个动作。在第二个实施例200b中假设应用106正运行于一稳定状态,即没有相移发生。在第二个实施例200b中,简表使用者是动作评估器216b,其用于评估由选择器204b选定的一个或多个动作206,以便细调选择器204b的性能以确定所述选定的动作对执行中的应用106的行为的影响。动作评估器216b将在下面有更加详细的说明。该行为调整器116包括分析器118、选择器204b以及应用器122b。应当注意分析器118与图2A中示出的第一实施例200a的分析器有相同的功能。如上所述,分析器118接收由简表分析代理104在预先确定的时间间隔内收集的简表110并且生成一组数据。然后分析器118向选择器204b传送被确定的该组数据,选择器从该组数据中选择一个或多个将改进执行中的应用106的行为的动作206。然后选择器204b将所述的一个或多个动作206传送给应用器122b,该应用器122b在执行中的应用106上施加选定的一个或多个动作206。另外,选择器204b还将选定的一个或多个动作206传送给简表规格化器208a以及简表使用者(动作评估器)216b。简表规格化器的预测器210使用所述的一个或多个动作206以及简表110预测当应用器122b在执行中的应用106上施加了所述的一个或多个动作206时,该执行中的应用106的行为。然后预测器210将预测结果传送给调整器212,调整器212对简表110施加该预测结果以便由此生成规格化的简表214,规格化简表214被传送给简表使用者(动作评估器)216b,简表使用者216b对规格化的简表214加以利用。
进一步参考图2B,简表使用者(动作评估器)216b的操作将在下面有更加详细的说明。如上所述,简表使用者216b接收由选择器204b传送的一个或多个动作206以及由简表规格化器208a传送的规格化简表214。另外,简表使用者216b基于来自规格化控制器202b的控制108接收由简表分析代理104收集的当前简表110以及所有的后续简表。在第二个实施例200b中,假设规格化控制器202b通过行为调整器116已经提供了一个或多个选定的动作206,并且通过简表规格化器208a为简表使用者216b提供规格化的简表214,这些都是针对当前简表110而进行的。进一步假设针对当前简表的一个或多个动作206已经被应用器122b施加于执行中的应用106上。在此处,规格化控制器202b通过控制信号108指示简表分析代理104从执行中的应用106处收集后续的简表110。现在将说明对后续收集的简表的处理。简表分析代理104将后续简表110传送给规格化控制器202b以便进行如上所述的处理,并且还将后续简表110传送给简表使用者(动作评估器)216b。动作评估器216b对照后续收集的简表110评估用于先前收集的简表110的规格化简表214,其中所述后续收集的简表110反应出基于先前收集的简表110而施加于执行中的应用106的一个或多个动作206。如果动作评估器216b确定基于所述先前收集的简表而施加的一个或多个动作206对执行中的应用106不具有预期的改进效果,则动作评估器216b通过向选择器204b传送无效控制信号218撤销先前施加的动作206而使先前施加的一个或多个动作无效。如果传送了一个无效控制信号,则选择器204b也更新其花费-收益模型,使得选择器204b在对处于与刚刚描述的环境相同的环境中的将来的简表110的处理中,不会再次选择所述被无效的一个或多个动作。下面将给出关于第二实施例200b中的无效操作的说明。
进一步参考图2B,下面给出了由简表使用者(动作评估器)216b执行的示例性的评估和无效的描述。例如,假设动作评估器216b已经接收了收集到的简表P1,作为P1的结果被施加于执行中的应用的动作A1,以及规格化简表NP1,其中P1相对于A1被规格化。当对该执行中的应用施加了动作A1之后,后续简表P2被收集并被传送给该简表评估器216b。进一步假设该执行中的应用处于一稳定状态,即,在这个时候没有发生相移。如果P2和NP1不相似,则选择器204b(以及预测器210)关于动作A1基于P1将会如何修改执行中应用的行为的理解是不正确的。动作评估器确定一个或多个动作A1,这些动作相应于P2和NP1不相似的区域(region),并且通过向选择器204b以及预测器210传送无效控制信号218而将这些区域无效掉。被传送的无效控制信号218最好是一个由<P1,NP1,A2,P2>构成的元组(tuple),其中动作A2可以是A1的全部或是A1的子集。选择器204b以及预测器210更新它们的花费-收益模型。基于该无效控制信号,选择器204b选择动作A3,并且将其传送给应用器122b以便将其施加于执行中的应用106,从而撤销将被无效的动作A2。由选择器204b做出的对无效先前施加的动作的动作选择反映其是否对于执行中的应用表现出净收益。例如,一个动作将一个方法从优化级别0优化(即,编译)到优化级别2,则可以通过重新以优化级别0编译该方法而将该动作无效掉。在另一方面,如果重新编译该方法的花费(重新编译的时间)比改进后的行为的收益(执行时间的减少)大,则选择器204b将不使得应用器122b撤销该动作。
图2C表示了根据本发明的自治软件系统的第三个示例性实施例200c,该系统能够规格化从执行中的应用处收集的简表,以便说明在收集了所述的简表之后由该自治软件系统200c所采取的一个或多个动作。在第三个实施例200c中,简表使用者是规格化控制器202c本身。规格化控制器202c使用规格化的简表214,使得选择器204c可以更好地做出关于选择哪些动作的决定。更具体地,如果两个动作的益处是相关的,则选择两个中最好的动作并且在从规格化的简表中挑选下一个动作之前规格化该简表将会更好地改进该应用的行为。如果当两个动作都被采用时应用的改进行为少于当每个动作被单独地施加于该应用时的总改进,则这两个动作是相关的。例如,如果简表表明有两个方法被经常地执行,则选择器204c可以选择对两个方法都进行优化;然而,如果一个方法只是在被另一个方法调用时才被执行,并且另一个方法将这个方法内联了,则该被内联的方法不应该被优化。
进一步参考图2C,规格化控制器(简表使用者)202c包括多路转换器(即“MUX”)220,其向简表分析代理104发送控制信号以便从执行中的应用处收集简表110。MUX220还如下面更加详细描述的那样为行为调整器116的分析器118c提供规格化的简表。行为调整器116包括分析器118c、选择器204c和应用器122。应当注意应用器122具有与图2A中所示的第一实施例200a的应用器相同的功能。分析器118c接收由简表分析代理104在预先确定的时间间隔内收集的简表110,如上所述地分析该数据并且产生可由规格化控制器202c使用的一组数据。然后分析器118c将这组数据传送给选择器204c。最佳地,选择器204c从这组数据中选择将会改变并且改进执行中的应用106的行为的动作206c。选择器204c将选定的动作206c传送给应用器122,应用器122将选定的动作206c施加112c于执行中的应用106。另外,选择器204c还如下所述地将选定的动作206c传送给简表规格化器208c的预测器210以及MUX220。作为上述的一种替换方案,选择器204c可以不从由分析器118c产生的该组数据中选择动作。如果选择器204c没有选择动作,则选择器204c通知MUX220,并且MUX220向简表分析代理104发送控制信号以便从执行中的应用处收集新的简表110。另外,当选择器204c没有选择动作时,选择器204c不向应用器122或简表规格化器208c的预测器210传送任何东西,并且为新的简表执行前面的处理。
进一步参考图2C,然而如果选定的动作被从选择器204c传送给简表规格化器208c的预测器210,则预测器210利用选定的动作206c和简表110预测当所述的动作206c被应用器122施加于该执行中的应用106时,所述执行中的应用106的行为。然后预测器210将预测结果传送给调整器212,调整器将该预测结果施加于简表110,由此产生规格化简表214,规格化简表214被从简表规格化器208c传送给MUX220。当MUX220接收到来自选择器204c的所述选定的动作以及规格化的简表214时,MUX220将规格化的简表214传送给分析器118c并且指示分析器118c分析规格化的简表214,而不是指示简表分析代理104从执行中的应用106处收集新的简表110。如上所述,分析器118c分析规格化的简表214并且生成一组数据。然后分析器118c将这组数据传送给选择器204c,选择器204c或是从这组来自规格化分简表214的数据中选择动作206c,或是不选择动作。如果选择器204c选择了动作,则所选定的动作206c被传送给应用器122,应用器122对执行中的应用106施加112c选定的动作206c。另外,选择器204c还将所述选定的动作206c传送给简表规格化器208c的预测器210以及MUX220。作为上述的一种替代方案,如果选择器204c不从由分析器118c产生的该组数据中选择动作,则选择器204c通知MUX220,并且MUX220向简表分析代理104发送控制信号以便从执行中的应用106处收集新的简表110。另外,当选择器204c没有选择动作时,选择器204c不向应用器122或简表规格化器208c的预测器210传送任何东西,并且为新收集的简表110执行上面说明的处理。前述的内容能够使规格化控制器202c在从执行中的应用106处收集其它的简表之前,说明被施加于执行中的应用106上的连续的动作。另言之,规格化控制器202c利用连续的规格化简表214以使得选择器204c可以作出更好的关于选择什么动作的决策。
图3A表示了根据本发明的自治软件系统的上述三个实施例中由规格化控制器执行规格化操作300a的示例性图示。出于清楚和简洁的目的,以规格化控制器302表示上述三个实施例中的规格化控制器200a、200b、200c,它能够规格化收集到的简表110并产生规格化的简表214。在图示300a中,收集到的简表110包括多个方法和权值对。设P1为在自治软件系统将一个或多个动作A施加于执行中的应用106之前从执行中的应用处收集的简表110。另外,假设P1具有被简表分析的方法M1、M2、M3、M4,并且通过简表分析代理104为这些方法进行简表分析而得到的权值分别为50、10、25和15,对于简表110,其权值总和为100。因此,将简表分析的权值施加于简表分析的方法,则简表P1={<M1,50>,<M2,10>,<M3,25>,<M4,15>}。此外,假设所述A中的一个或多个动作仅影响方法M1并减少了40%的执行时间(即,改进了其性能)。因此,将40%的减少应用于与方法M1相关联的权值,则简表P1 1={<M1,30>}(即,权值50-[权值50*40%=20]=30)。根据方法M1的减少调整其它方法M2,M3,M4的权值,这实际上是与方法M1的执行时间的减少成比例地增加了它们的执行时间。更具体地,简表P1 1={<M1,30>,<M2,14>,<M3,35>,<M4,21>}。例如,方法M2的新权值被按下面的方法计算。M2的最初权值为10。全部未受影响的方法M2,M3,M4的累加权值等于50(即,总权值100-受影响的方法M1的权值50=未受影响的M2,M3,M4的权值50)。因此,10/50为20%,20(M1权值中的减少部分)的20%是增加的权值4,将其加到M2的最初权值10之上得到M2的新权值14。对与方法M3、M4相关联的其它权值执行同样的处理。因此,给定一以预先确定的时间间隔T1收集的简表P1,以及一组在收集了所述的简表之后由该自治软件系统施加的一个或多个动作A,则通过调整P1以反应A的应用而根据A规格化P1
图3B表示了根据本发明的自治软件系统的上述三个实施例中由规格化控制器执行的另一个规格化操作300b的示例性图示。出于清楚和简洁的目的,以规格化控制器302表示上述三个实施例中的规格化控制器200a、200b、200c,它能够规格化收集到的简表110并产生规格化的简表214。在图示300b中,收集到的简表110包括多个由整数表示的基本块。在所述的简表被收集时的所述预先确定的时间间隔内,当所述应用中的一个基本块被执行时,该基本块相应的整数被写到收集的简表110中。设P1为在自治软件系统将一个或多个动作A施加于执行中的应用106之前从执行中的应用106处收集的简表110。此外,对于本示例,假设P1已经简表分析了图3B中所示的基本块1、2、3、4、5的执行。另外,对于本示例,假设基本块1、2、3构成方法M,并且动作A表示方法M应被优化。优化后的方法M包括基本块6、7。因此,如图3B所示,规格化控制器以规格化简表214中的基本块6、7替代简表P1中的基本块1、2、3。
图4A是根据本发明的自治软件系统的第一实施例200a的示例性方法流程图400a,该自治软件系统能够规格化从执行中的应用处收集到的简表,以便说明在收集了所述的简表之后由该自治软件系统200a采取的所述一个或多个动作。该方法从步骤402开始,其中简表分析代理104在运行时环境102中执行应用106。在步骤404,规格化控制器202a通过控制信号108控制所述简表分析代理以便收集第一简表110。在步骤406,规格化控制器202a通过分析器118分析收集的第一简表110,从而确定可由规格化控制器202a使用的一组数据。此后,在步骤408,规格化控制器202a从该数据中确定是选择一个或多个动作以施加于执行中的应用106,还是不选择任何动作。如果在步骤408未选择任何动作,则方法在步骤404处继续,在这里从执行中的应用106处收集另一个简表。作为另一种选择,如果在步骤408选择了一个或多个动作,则在步骤410,应用器122将选择的一个或多个动作施加于执行中的应用106。在步骤412,规格化控制器202a的简表规格化器208a规格化所述收集到的第一简表110。在步骤414,规格化控制器202a指示简表分析代理104收集第二个简表110。此后,在步骤416,所述相移检测器使用从在步骤404收集的第一简表的规格化中获得的规格化简表214和在步骤414收集的第二简表检测执行的应用中的相移。如上所述,可以通过比较规格化简表214与收集的第二简表的相似性检测相移。
图4B是根据本发明的自治软件系统的第二实施例200b的示例性方法流程图400b,该自治软件系统能够规格化从执行中的应用处收集到的简表,以便说明在收集了所述的简表之后由该自治软件系统200b采取的所述一个或多个动作。该方法从步骤402开始,其中简表分析代理104在运行时环境102中执行应用106。在步骤404,规格化控制器202b通过控制信号108控制简表分析代理以便收集第一简表110。在步骤406,规格化控制器202b通过分析器118分析收集的第一简表110,从而产生将被规格化控制器202b使用的一组数据。此后,在步骤408,规格化控制器202b通过选择器204b从该数据中确定是选择一个或多个动作以施加于执行中的应用106,还是不选择任何动作。如果在步骤408未选择任何动作,则方法在步骤404处继续,在这里从执行中的应用106处收集另一个简表。作为另一种选择,如果在步骤408选择了一个或多个动作,则在步骤410,应用器122b将选择的一个或多个动作施加于执行中的应用106。在步骤412,规格化控制器202b的简表规格化器208a规格化所述收集到的第一简表110以成生规格化简表214。此后,在步骤416,规格化控制器202b指示简表分析代理104收集第二简表110。在步骤418,简表使用者(动作评估器)216b对照在步骤412处规格化所述收集的第一简表而获得的规格化简表评估所述收集的第二简表。在步骤420,根据所述收集到的第二简表以及所述规格化简表确定是否有预期的改进。如果在步骤420有预期的改进,则方法在步骤424处继续,其中规格化控制器202b通过分析器118分析该收集到的第二简表以便生成将被规格化控制器202b使用的一组数据。该方法继续到步骤408,在这里选择器204b从来自所述收集的第二简表的该组数据中选择一个或多个动作。此后,该方法如上所述地从步骤408处继续。作为另一选择,如果在步骤420处依据第二简表110以及规格化简表214确定没有预期的改进,则在步骤422,规格化控制器202b通过无效控制信号218指示选择器204b将在步骤410处施加于执行中的应用106的动作无效掉,从而撤销如上所述所施加的动作。在步骤426,更新由选择器204b和预测器210使用的花费-收益模型。此后,该方法通过收集另一简表110在步骤404处继续。
图4C是根据本发明的自治软件系统的第三实施例200c的示例性方法流程图400c,该自治软件系统能够规格化从执行中的应用处收集到的简表,以便说明在收集了所述的简表之后由该自治软件系统200c采取的一个或多个动作。该方法从步骤402开始,其中简表分析代理104在运行时环境102中执行应用106。在步骤404,规格化控制器202c通过控制信号108控制简表分析代理以便收集简表110。在步骤406,规格化控制器202c通过分析器118分析收集的简表110,从而产生可被规格化控制器202c使用的一组数据。此后,在步骤409,规格化控制器202c通过选择器204c从该组数据中确定是选择一个或多个动作以施加于执行中的应用106,还是不选择任何动作。如果在步骤409未选择任何动作,则方法在步骤404处继续,在这里从执行中的应用106处收集另一简表。作为另一种选择,如果在步骤409选择了动作,则在步骤411,应用器122将所选择的动作施加于执行中的应用106。在步骤412,规格化控制器202c的简表规格化器208c规格化所述收集到的简表110以生成规格化简表214。此后,在步骤424,规格化控制器202c通过MUX202指示分析器118c分析规格化简表124,以便以上述的方式从规格化简表中生成一组数据。在步骤426,规格化控制器202c通过选择器204c从该组数据中确定是选择一个动作以便施加于执行中的应用106,还是不选择动作。如果在步骤426没有选择动作,则该方法在步骤404处继续,在这里从执行中的应用106处收集另一简表。作为另一种选择,如果在步骤426处选择了动作,则在步骤428处,应用器122将所选择的动作施加于执行中的应用106。此后,在步骤430,规格化控制器202c的简表规格化器208c规格化该规格化简表214,以便产生另一规格化简表214。该方法在步骤424处继续并且执行步骤424-430直到在步骤426处没有其它的动作被选择为止。然后,该方法在步骤404处继续,从执行中的应用106收集另一简表110。
虽然以最佳实施例给出并说明了本发明,但是本领域的技术人员应当理解,可以在不脱离本发明的精神和范围的情况下做出上述的和其它的形式上的和细节上的改动。

Claims (8)

1.一种用于规格化为执行中的应用而收集的简表、以便说明在收集了所述的简表之后施加于该执行中的应用的一个或多个动作的方法,该方法包括:
(a)通过使用所述的简表和所述的一个或多个动作预测对该执行中的应用施加所述的一个或多个动作的影响;以及
(b)根据所述预测的影响调整所述的简表以形成规格化简表。
2.一种用于规格化为执行中的应用而收集的简表、以便说明在收集了所述的简表之后施加于该执行中的应用的一个或多个动作的系统,该系统包括:
用于通过使用所述的简表和所述的一个或多个动作预测对该执行中的应用施加所述的一个或多个动作的影响的预测器;以及
用于根据所述预测的影响调整所述的简表以形成规格化简表的调整器。
3.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作、以便改进收集了所述的简表之后对该执行的应用中的相移的检测的方法,该方法包括:
(a)为所述执行中的应用收集第一简表;
(b)通过使用所述的第一简表和所述的一个或多个动作预测对该执行中的应用施加所述的一个或多个动作的影响;
(c)根据所述预测的影响调整所述的简表以形成规格化简表;
(d)将所述的一个或多个动作施加于该执行中的应用;
(e)为所述执行中的应用收集第二简表;以及
(f)通过使用所述的规格化简表和第二简表检测该执行的应用中的相移。
4.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作、以便改进收集了所述的简表之后对该执行的应用中的相移的检测的系统,该系统包括:
用于为该执行中的应用收集第一简表和第二简表的简表分析代理;
用于通过使用所述的第一简表和所述的一个或多个动作预测对该执行中的应用施加所述的一个或多个动作的影响的预测器;
用于根据所述预测的影响调整所述第一简表以形成规格化简表的调整器;
用于将所述的一个或多个动作施加于该执行中的应用的应用器;以及
用于通过使用所述的规格化简表和所述的第二简表检测该执行的应用中的相移的相移检测器。
5.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作、以便在收集了所述的简表之后确定该执行中的应用的执行是否有改进的方法,该方法包括:
(a)为所述执行中的应用收集第一简表;
(b)选择并在该执行中的应用上施加一个或多个动作;
(c)通过使用所述的第一简表和所述的一个或多个动作预测对该执行中的应用施加所选择的一个或多个动作的影响;
(d)根据所述预测的影响调整所述的第一简表以形成规格化简表;
(e)为所述执行中的应用收集第二简表;
(f)对照所述规格化的简表评估所述的第二简表以确定该执行中的应用的执行是否有预期的改进;以及
(g)如果对该执行中的应用的执行没有预期的改进,则施加一个或多个动作以撤销所述的已经施加于该执行中的应用的一个或多个动作。
6.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作、以便在收集了所述的简表之后确定该执行中的应用的执行是否有改进的系统,该系统包括:
用于为该执行中的应用收集第一简表和第二简表的简表分析代理;
用于选择一个或多个动作以施加于该执行中的应用的选择器;
用于通过使用所述收集的第一简表和所述的一个或多个动作预测对该执行中的应用施加所选定的一个或多个动作的影响的预测器;
用于根据所述预测的影响调整所述收集的第一简表以形成规格化简表的调整器;
用于对照所述的规格化简表评估该第二简表以确定该执行中的应用的执行是否有预期的改进的动作评估器;以及
用于施加所述的选定的一个或多个动作,以及如果该执行中的应用的执行没有所预期的改进,则施加一个或多个动作以便撤销所述的已施加的一个或多个动作的应用器。
7.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作,以便在收集了所述的简表之后改进该执行中的应用的执行的方法,该方法包括:
(a)基于所述收集的简表将选择的第一动作施加于该执行中的应用;
(b)通过使用所述收集的简表以及所选定的第一动作预测对该执行中的应用施加所述第一选定动作的影响;
(c)根据所述预测的影响调整所述收集的简表以形成第一规格化简表;
(d)基于所述第一规格化简表或后续的规格化简表将第二选定的动作施加于该执行中的应用;
(e)通过使用所述第一规格化简表和所述第二选定的动作预测对该执行中的应用施加所述第二选定动作的影响;
(f)根据所述预测的影响调整所述第一规格化简表以形成第二规格化简表;以及
(g)为所述第二规格化简表和每个后续的规格化简表以及选定的动作重复步骤(d)-(f)。
8.一种用于调整为执行中的应用而收集的简表、从而说明施加于该执行中的应用的一个或多个动作、以便在收集了所述的简表之后改进该执行中的应用的执行的系统,该系统包括:
用于通过使用所述收集的简表和第一选定的动作预测对该执行中的应用施加所述第一选定动作的影响的预测器;
用于根据所述预测的影响调整所述收集的简表以便形成第一规格化简表的调整器;以及
用于基于所述收集的简表将所述的第一选定动作施加于该执行中的应用,基于所述第一规格化简表将第二选定的动作施加于该执行中的应用,并且重复地将来自每个后续的规格化简表的每个选定的动作施加于该执行中的应用的应用器。
CNB2004100700325A 2003-08-06 2004-08-05 自治软件系统中的简表规格化 Expired - Fee Related CN100504765C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/635,199 2003-08-06
US10/635,199 US7496907B2 (en) 2003-08-06 2003-08-06 Method and system for profile normalization in an autonomic software system

Publications (2)

Publication Number Publication Date
CN1581076A CN1581076A (zh) 2005-02-16
CN100504765C true CN100504765C (zh) 2009-06-24

Family

ID=34116184

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100700325A Expired - Fee Related CN100504765C (zh) 2003-08-06 2004-08-05 自治软件系统中的简表规格化

Country Status (4)

Country Link
US (3) US7496907B2 (zh)
CN (1) CN100504765C (zh)
TW (1) TWI332156B (zh)
WO (1) WO2005017744A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496907B2 (en) * 2003-08-06 2009-02-24 International Business Machines Corporation Method and system for profile normalization in an autonomic software system
US7506329B1 (en) * 2004-05-04 2009-03-17 Sun Microsystems, Inc. Method and system for targeting profile gathering through real-time data
US8762974B1 (en) * 2005-06-30 2014-06-24 The Mathworks, Inc. Context-sensitive compiler directives
US20070022142A1 (en) * 2005-07-20 2007-01-25 International Business Machines Corporation System and method to generate domain knowledge for automated system management by combining designer specifications with data mining activity
US8739143B2 (en) * 2007-01-31 2014-05-27 Hewlett-Packard Development Company, L.P. Profiling metrics for computer programs
US7818722B2 (en) * 2006-06-09 2010-10-19 International Business Machines Corporation Computer implemented method and system for accurate, efficient and adaptive calling context profiling
US7900198B2 (en) * 2006-10-02 2011-03-01 Wind River Systems, Inc. Method and system for parameter profile compiling
US8453115B2 (en) * 2007-04-27 2013-05-28 Red Hat, Inc. Automatic data manipulation to influence code paths
US8074207B1 (en) * 2007-05-31 2011-12-06 Adobe Systems Incorporated Application profiling
US8006235B2 (en) * 2007-06-11 2011-08-23 Microsoft Corporation Profiler management
US20100125838A1 (en) * 2008-11-19 2010-05-20 Nokia Corporation Method and Apparatus for Optimizing a Program
US7683902B1 (en) 2009-03-27 2010-03-23 International Business Machines Corporation Method to visualize performance data of a multi-layered state diagram
US8561032B2 (en) * 2009-11-04 2013-10-15 Red Hat, Inc. Visualizing thread life time in eclipse
US8527960B2 (en) * 2009-12-04 2013-09-03 Sap Ag Combining method parameter traces with other traces
US8584098B2 (en) * 2009-12-04 2013-11-12 Sap Ag Component statistics for application profiling
US8850403B2 (en) * 2009-12-04 2014-09-30 Sap Ag Profiling data snapshots for software profilers
US9129056B2 (en) * 2009-12-04 2015-09-08 Sap Se Tracing values of method parameters
US9043255B2 (en) 2012-05-09 2015-05-26 International Business Machines Corporation Optimally configuring an information landscape
EP2873023B1 (en) * 2012-07-10 2020-02-26 Telefonaktiebolaget LM Ericsson (publ) Technique for determining a malign or non-malign behavior of an executable file
US9495141B1 (en) * 2015-12-01 2016-11-15 International Business Machines Corporation Expanding inline function calls in nested inlining scenarios
US10901658B2 (en) * 2018-12-28 2021-01-26 Micron Technology, Inc. Host adaptive memory device optimization

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6126329A (en) * 1993-06-08 2000-10-03 Rational Software Coporation Method and apparatus for accurate profiling of computer programs
EP0689141A3 (en) * 1994-06-20 1997-10-15 At & T Corp Disruption-based hardware support for system performance profiling
US5768592A (en) * 1994-09-27 1998-06-16 Intel Corporation Method and apparatus for managing profile data
US6631518B1 (en) * 1997-03-19 2003-10-07 International Business Machines Corporation Generating and utilizing organized profile information
US6145121A (en) 1997-04-17 2000-11-07 University Of Washington Trace based method for the analysis, benchmarking and tuning of object oriented databases and applications
US6289506B1 (en) * 1998-06-30 2001-09-11 Intel Corporation Method for optimizing Java performance using precompiled code
US6425110B1 (en) * 1998-12-17 2002-07-23 International Business Machines Corporation Incremental design tuning and decision mediator
US6826748B1 (en) * 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US6519571B1 (en) * 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US6922829B2 (en) * 1999-10-12 2005-07-26 Texas Instruments Incorporated Method of generating profile-optimized code
US7146581B2 (en) 2002-11-15 2006-12-05 Russell Alan Klein Automated repartitioning of hardware and software components in an embedded system
US6856951B2 (en) 2002-11-15 2005-02-15 Rajat Moona Repartitioning performance estimation in a hardware-software system
US7590984B2 (en) * 2003-05-29 2009-09-15 International Business Machines Corporation System and method for balancing a computing load among computing resources in a distributed computing problem
US7496907B2 (en) 2003-08-06 2009-02-24 International Business Machines Corporation Method and system for profile normalization in an autonomic software system

Also Published As

Publication number Publication date
US20080244548A1 (en) 2008-10-02
TW200516408A (en) 2005-05-16
US8621449B2 (en) 2013-12-31
US20050034105A1 (en) 2005-02-10
US8356291B2 (en) 2013-01-15
TWI332156B (en) 2010-10-21
US7496907B2 (en) 2009-02-24
US20080244529A1 (en) 2008-10-02
WO2005017744A3 (en) 2005-05-19
CN1581076A (zh) 2005-02-16
WO2005017744A2 (en) 2005-02-24

Similar Documents

Publication Publication Date Title
CN100504765C (zh) 自治软件系统中的简表规格化
JP2720910B2 (ja) データ処理システムの作業負荷を管理するための装置及び方法
Chen et al. Computing efforts allocation for ordinal optimization and discrete event simulation
Berman High-performance schedulers
KR102257028B1 (ko) 컴퓨팅 플랫폼 기반의 적응형 딥러닝 작업 할당 장치 및 방법
Love et al. A discrete semi-Markov decision model to determine the optimal repair/replacement policy under general repairs
CA3090095C (en) Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
US20070143166A1 (en) Statistical method for autonomic and self-organizing business processes
US20100131314A1 (en) System for effectively estimating project size
WO2011105091A1 (ja) 制御装置、管理装置、制御装置のデータ処理方法、およびプログラム
CN102622260B (zh) 一种在线迭代编译的优化方法和优化系统
Nyikosa et al. Bayesian optimization for dynamic problems
Kamthe et al. A stochastic approach to estimating earliest start times of nodes for scheduling DAGs on heterogeneous distributed computing systems
CN101339562A (zh) 引入兴趣模型反馈更新机制的门户个性化推荐服务系统
Jin et al. What helped, and what did not? An evaluation of the strategies to improve continuous integration
US6360360B1 (en) Object-oriented compiler mechanism for automatically selecting among multiple implementations of objects
CN101371213A (zh) 能量管理
US11293958B2 (en) Power measurement and analysis system of mobile device and method thereof
Naqvi et al. Mascot: self-adaptive opportunistic offloading for cloud-enabled smart mobile applications with probabilistic graphical models at runtime
Gerostathopoulos et al. Cost-aware stage-based experimentation: challenges and emerging results
KR100439718B1 (ko) 엘리베이터의 군관리 제어장치
Quan et al. Asymptotic performance in heterogeneous human-machine inference networks
Chakraborty et al. Bayesian optimum stopping rule for software release
Malek et al. Improving the reliability of mobile software systems through continuous analysis and proactive reconfiguration
CN112527638A (zh) 程序监控系统、方法和计算机可读存储介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090624

Termination date: 20200805