用于系统适配的动态程序评估的制作方法

文档序号:9355159阅读:415来源:国知局
用于系统适配的动态程序评估的制作方法
【技术领域】
[0001]本发明整体涉及系统适配。更具体地讲,本发明涉及执行动态程序评估以使系统适应其当前操作环境。
【背景技术】
[0002]可根据不同考虑事项编写多个版本的源代码来执行相同功能。例如,作者可为一般数据处理任务或功能编码库例程,诸如图形渲染例程,从而基于例如不同的算法或优化参数等生成单独的源代码。每种源代码可编译成作为不同具体实施的单独的可执行程序以执行共同任务。
[0003]由于系统可安装有包括共同任务(或库例程)的这些多个具体实施的库,要求手动配置以指定可执行代码中的哪种可执行代码应当用于系统并不少见。然而,随着现代数据处理系统的复杂度提升,手动配置已变得过于繁琐而变得不实用。
[0004]另外,程序员可提供多个版本的源代码来实施相同任务而不用考虑将要执行这些代码的实际操作环境中所有可能的变化。事实上,在设计代码时,要考虑实际操作环境中的所有相关变化可能会越来越难或甚至不可行。
[0005]因此,用于系统适应实际操作环境的当前方法不实用、不全面并且未优化。

【发明内容】

[0006]在一个实施例中,动态程序评估可测试运行可执行程序的多个变型来选择适用于当前系统运行环境的一个或多个可执行程序。每个可执行程序能够执行共同任务。在运行时期间可经由测试运行来评估可执行程序以生成测量性能相关信息的传感器数据。可基于所收集的传感器数据来选择一个或多个可执行程序。可通过系统硬件/软件运行环境中检测到的变化自动触发评估。在一个实施例中,动态可执行程序适配可允许开发人员经由运行时评估在最大性能或最大效率之间进行选择。基于硬件功率测量的可执行程序(例如功能和程序)的动态评估可智能地配置系统以节能或改善其他适用系统性能指标或属性。
[0007]本发明的实施例包括为设备中的任务维护多个可执行程序的方法和装置。每个可执行程序能够响应于设备的操作环境的变化来执行该任务。可执行每个可执行程序以执行任务的测试运行。在设备中变化的操作环境下,每次执行可消耗功率量。可基于任务的测试运行所消耗的功率量来选择可执行程序中的一个可执行程序以在将来执行任务。所选择的一个可执行程序需要不比所述可执行程序中的剩余可执行程序中的每个可执行程序所需的功率高的功率。
[0008]在可供选择的实施例中,可检测到机器的操作环境的变化。该机器可包括用于任务的多个可执行程序。每个可执行程序能够执行该任务。响应于所检测到的变化,可执行机器上的可执行程序的测试运行来测量可执行程序在操作环境下执行任务的适宜性。可基于所测量的适宜性来选择可执行程序中的一个可执行程序。响应于执行任务的将来请求,可执行所选择的一个可执行程序而不执行剩余可执行程序。
[0009]在可供选择的实施例中,可加载用于执行数据处理例程的可执行代码。可执行代码可包括两个或更多个执行路径。每个执行路径能够执行数据处理例程。可执行代码可与用于数据处理例程的样本输入相关联。响应于加载,可执行每个执行路径以用样本输入执行数据处理例程。可执行每个执行路径以消耗机器中的单独的处理资源(例如功率)量。可动态地配置可执行代码,例如响应于加载,以基于所消耗的处理资源量为数据处理例程启用执行路径中的一个执行路径。所配置的一个执行路径可消耗不比剩余执行路径消耗的处理资源量高的处理资源量。该配置可为数据处理例程禁用可执行代码中的剩余执行路径。
[0010]通过附图以及通过以下具体描述,本发明的其他特征将显而易见。
【附图说明】
[0011]本发明以举例的方式进行说明,并且不仅限于各个附图的图形,在附图中类似的附图标号表示类似的元件,并且其中:
[0012]图1是示出用于动态适配的系统部件的一个实施例的框图;
[0013]图2是示出在例程上执行评估运行以配置硬件的过程的实施例的流程图;
[0014]图3是示出基于传感器数据来选择用于将来执行的程序的过程的实施例的流程图;
[0015]图4是示出基于功耗来选择可执行程序以执行任务的过程的实施例的流程图;
[0016]图5是示出检测操作环境的变化以选择适合于操作环境的可执行程序的过程的实施例的流程图;
[0017]图6是示出在可执行程序中执行执行路径以响应于可执行代码的加载来选择执行路径中的一个执行路径的过程的实施例的流程图;
[0018]图7示出了可与本文所述的实施例一起使用的典型计算机系统的一个实例。
【具体实施方式】
[0019]描述了用于动态程序评估的方法和装置。以下说明中示出了许多具体细节,以提供对本发明实施例的全面解释。然而,对于本领域的技术人员显而易见的是,本发明的实施例可在不具有这些具体细节的情况下实施。在其他情况下,未详细示出已熟知的部件、结构和技术,以免影响对此说明的理解。
[0020]本说明书中提到的“ 一个实施例”或“实施例”是指,结合实施例所描述的特定特征、结构或特性可包括在本发明的至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。
[0021]下图中示出的过程通过处理逻辑执行,所述处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机上运行的软件)、或两者的组合。虽然下文按照某些顺序操作来描述过程,但应当理解,所描述的某些操作可以不同的顺序来执行。此外,某些操作也可以并行地执行而并非按顺序执行。
[0022]在一个实施例中,动态程序评估可基于当前运行环境允许系统配置哪些可用的可执行程序在不久的将来执行任务,从而改善特定系统度量。例如,系统可包括可执行程序的多个版本或变型,每一个可执行程序能够执行相同任务。可能已指定待激活的当前可执行程序来执行任务,例如经由来自应用的应用编程接口调用来执行。
[0023]在一个实施例中,可触发动态程序评估来评估每个可执行程序或一组选择的可用的可执行程序来确定应当指定哪一个或哪些可执行程序在经调用或请求时执行任务。因此,可能不会为系统执行(例如不激活或加载)未选择或指定的剩余可执行程序来执行相应任务。
[0024]在一些实施例中,动态程序评估可引起在用于执行任务的一组可执行程序上的评估测试运行。对于测试情况,可执行可执行程序或选择的可执行程序中的每一个可执行程序,并且可收集和比较相应系统度量,例如经由硬件传感器来进行。系统度量可包括功耗、处理速度、内存使用率、经过时间和/或其他适用度量。
[0025]系统可聚集多个可执行程序,每个可执行程序能够执行相同任务。在运行时期间,可激活可执行程序中的一个可执行程序来执行任务,例如经由来自应用的公用API (应用编程接口)。可连同多个可执行程序提供任务的测试案例。每个可执行程序可编译自不同的源代码以使用单独方法或方法的变型(例如不同算法、不同具体实施等)来完成相同任务。因此,多个可执行程序可为系统提供机会来选择不同的选项以在不同的时间实例处完成任务。
[0026]在某些实施例中,动态程序评估可在可用的可执行程序上执行评估运行来决定哪一个在将来于特定机器上执行任务时最具高功效。可执行程序中的每个可执行程序可代表用于执行相同任务的不同选项或备选例程。运行时评估可有效地了解可能影响评估结果的所有因素(例如硬件或软件)。在为可执行程序设计或编写相应代码(或源代码)时,这些因素可能不可用或者可能不会考虑它们。示例性因素可包括平台(例如不同处理器、电路板、总线、操作系统等)、系统配置、环境设置(例如网络环境、温度等)或其他适用的运行时处理因素。
[0027]在一些实施例中,可为数据处理任务选择可用的可执行程序的子组来进行评估,而不是在所有可用的可执行程序上执行测试运行。可动态地确定和/或微调可执行程序的子组。例如,可保留评估结果的记录或历史。可根据之前的(例如最新的)测试结果将每个可用的可执行程序排名(基于某个标准,诸如功率使用)。根据评级顺序,待评估的可用的可执行程序的子组可标识为可用的可执行程序的一部分(例如前3、前25%等)。因此,可根据例如当前运行环境持续调节(或调谐)所需的测试运行数目,无需每次都测试运行每个可用的可执行程序。
[0028]在一些实施例中,当触发时,可监测对用户体验的影响来计划动态程序评估。例如,在系统空闲的时间段期间,可以用户不可见方式在后台执行动态执行评估。可停止和恢复动态适配(例如当检测到系统空闲时)直到完成每次计划的测试运行。因此,当满足了某些运行时间条件(诸如系统空闲而没有处理用户相关任务或其他适用高优先级任务)时,可以多个(例如非连续)时间间隔段(例如每隔5ms)来单独执行测试运行选择的可执行程序所需的短时间段(例如20ms)。
[0029]在一个实施例中,系统可基于最近执行了哪些任务(例如在对应的API的上次调用或来自应用的其他调用中)动态地生成或选择测试案例。已在系统中配置或安装的可执行程序可与一个或多个测试案例相关联,这些测试案例可应用于执行可执行程序以进行评估。
[0030]在一些实施例中,可提供预编译的测试案例作为要在评估时间应用的用于选择可执行程序的特定固定输入,从而例如提供库服务来执行数据处理任务。对于每个可执行程序可执行相同或相似的测试以执行相同任务来经由硬件传感器收集性能数据(例如花费的时间、消耗的处理循环、使用的功率等)。能够进行动态程序评估的固件可自动拾取最佳可用的可执行程序(例如基于某个算法)来响应于所检测到的环境变化或基于用户配置的计划来执行任务。
[
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1