Advertisement

论文阅读-On the relation of control-flow and performance feature interactions a case study

阅读量:

Abstract

目前最先进的性能预测技术建立在监督机器学习的基础之上以识别特征交互然而这种特征识别过程又离不开耗时的性能测量以获取高质量的训练数据集。为了深入挖掘可配置系统的潜在特性交互信息我们进行了详尽的研究工作通过对两个实际应用系统(MBEDTLS与SQLITE)进行全面考察揭示了其内部与外部特性交互之间的内在联系并探讨了如何通过静态程序分析与性能度量两种手段实现对这些潜在特性关系的有效捕捉最终发现了一种具有潜力的技术框架。

Introduction

特性是终端用户可见的行为或特性,符合涉众的需求。

本文旨在探讨的核心问题是:是否能有效提取潜在存在的特征交互信息?该研究具体阐述了两类交互机制。

(1)外部特征交互,可以通过观察系统的外部行为(如性能)来识别;

(2) 系统内特性的交互可以通过通过对源代码进行解析来识别;如采用控制流分析方法。假设认为系统内外部互动间存在某种关联,则能够迅速而准确地推断出系统外部的互动模式。

在技术层面,我们采用最先进的机器学习算法(第3.3节)深入研究了性能影响模型(第2.2节),并利用这些模型识别出两个主题系统特性间潜在的外部性能交互关系。进一步地,在系统代码层面进行人工核查以确认是否存在标识的性能交互作用,并验证其是否由相关特征间的相互作用导致的现象而非测量误差或环境噪声等外界干扰因素所造成。

本研究成功识别了特性间传递控制的关键代码位置。通过分析内部(控制流)互动与外部(性能)互动的关系,并结合第4.3.2节的研究背景,在初步实验中观察到:系统的动态行为呈现出明显的层次性特征,并且这种现象在不同运行环境下表现得尤为明显。进一步分析表明:系统运行效率在高峰期时会达到最优状态,并且这种状态能够持续较长时间。

我们基于这些交互行为所关注的属性,在此基础上构建了一个控制流程与性能交互之间的联系,并探讨了这种关联性是否合理。

我们定义了一个概念框架来探索内部和外部交互作用之间的关系。

针对此类案例的首个研究,在两个真实可配置的主题系统实践中深入探究了控制流与性能特性交互间的关联。

我们讨论了我们的发现的影响性能预测的高度可配置系统。

Internal and External Feature Interactions

举例而言,在音频流系统中

Control-Flow Interactions (Internal)

在绿色虚线箭头标识的组件间将发生数据流动关系,在使用时会自动完成密钥对齐操作。

Performance Interactions (External)

基于给定系统的配置参数设置,在确保不会超过系统的承载能力的前提下,并行处理最多的独立音频流的数量上进行计算得出的结果表明

Relating Control-Flow and Performance Interactions

通过结合元数据与加密技术以及压缩技术的应用,在系统中实现了对控制流程与性能指标的有效管理。请注意,在这些情况下,所有相关的控制流程与性能指标都源于相同的原始特性和属性;因此,在分析时我们可以依据这些共同的基础来进行关联。值得注意的是,并非所有仅由特性和属性驱动产生的独立或单独的控制流程都必然对应着相应的性能指标或资源消耗。

Research Questions and Conceptual Framework

RQ1:与控制流特性交互和性能特性交互相关(根据第3.4条的定义)?

如果有关系存在,则该技术可用于优化现有的检测外部特征交互的技术;同时它还可能基于内部特征来进行预测吗?

在回答这些问题之前, 我们必须确定在研究中使用的各种方法与工具, 并将其整合到一个理论体系中。特别强调的是, 我们必须采用一种恰当的研究途径, 明确如何辨别控制流程与性能互动的特征, 以及阐述这两者之间的具体联系。同时, 我们还应具体说明我们打算怎样应用这些发现

Research Method

Shull等人(2007)认为案例研究是"对某些现象的初探"。殷(2003)则将个案研究定义得更为宽泛:"在现实环境中进行当代现象的实地考察"。Flyvbjerg(2006)则指出:案例研究表明"某些现象发生过程中的机制以及它们之间的相互作用具有透彻分析的能力"。

以聚焦于两个系统的策略为核心目标的研究设计者们提出了一种方法,在这种情况下我们得以提升研究内部的有效性。这是因为采用这种方法能够更加有效地识别并更好地控制不同受试者系统可能产生的混杂效应。我们专注于开发能够检测高度定制化系统的先进技术和性能交互模式,在这项工作中我们面临的技术挑战较高程度上限制了其广泛应用于非标准的实际应用环境的可能性

在我们的案例研究过程中,我们经历了以下几个阶段:首先,我们在两个高度可靠的真实世界系统中实施观察,并分析出其运行过程中的关键流程及其性能表现;接着,我们验证由确定流程与表现所关联的一系列特征是否存在显著一致性;最后,通过分析这些关联关系来构建性能交互预测模型。

Identifying Control-Flow Interactions

为识别控制流交互,我们使用TYPECHEF4中提供的可感知变量的调用图分析(Fer-reira et al. 2015),它能识别通过预处理注释提供的函数调用特征(图1a)。

核心思想在于通过解析各系统配置仅共享一次的代码片段来优化运行效率。而调用图分析能够有效识别高度可配置系统中各特性间的函数调用关系,并能可靠地检测内部交互。

在代码分析中使用的底层数据模型是变量抽象语法树(VATS)。与传统的AST结构相似,VATS为源代码提供了一个高度可解析的摘要模型。然而,它特别关注那些与代码执行相关的属性分配情况(通过特定条件标记)。通过这些属性信息的分析处理,在每条函数调用指令中能够明确区分出调用者的相关属性以及被调用者的相关属性。

Identifying Performance Interactions

我们采用了SPL征服者工具来学习性能影响模型5。该工具将复杂的基于多变量回归和正向特征选择的方法进行了简化(Siegmund et al. 2015)。除此之外,在其他因素中(如采样策略),学习所得性能影响模型的效果高低取决于采样配置是否能充分代表整个配置空间。为了尽可能提高性能影响模型的效果,并确保准确捕捉到特征交互(即揭示真实情况),我们不仅测量了一个样本数据点和相关参数值(如平均响应时间),而是对所有可能的受试者系统配置进行了测量,并将这些数据作为算法输入

Relating Control-Flow and Performance Interactions

其旨在探究性能交互所涉及的关键特性是否也会在某些内部互动中出现,并且反过来同样适用。这表明如果没有发现可以通过这种方式关联的内部互动,则无法通过这些相关联特性的出现来定义各互动之间的联系。

此外,在分析任意两组相关交互行为时,我们需要判定其行为间的相似性程度(如两者是否共同拥有的全部属性以及其中一组独有的特定属性是否存在))。这一评估指标即为两个交互行为间的相似程度(similarity),可以用其关联性大小来衡量:数值越大表示关联越强。

Predicting Performance Interactions

基于Borgelt 2012的研究成果, 我们采用频繁项集挖掘作为一种研究手段之一来识别具有这种频率特性的有限元模型集合。

通过运行示例可以看出,在实验中一组特性{ADDMETADATA, ENCRYPT}被分类为一个项集,并且同时执行为一个事务(如图1a所示)。基于我们的假设,在分析结果中我们未考虑仅包含一个特性的数据集合。这是因为每个交互至少涉及两个不同的特性和属性。

我们使用橘子库6中的Apriori算法的实现来计算支持值。

Subject Systems

特性与服务的数量决定了这些系统特别适合进行深入分析和评估:例如,该系统能够全面衡量各种配置的功能特性和性能指标,并按照一定的顺序和流程进行评估和分析,确保在合理的时间内完成各性能特性之间的相互作用分析的基础数据收集。

Features and Feature Model of MBEDTLS

在顶层层次中,MBEDTLS包含密码、公钥、散列等组成模块。各组成模块相应地实现了相关的算法和协议。

Features and Feature Model of SQLITE

SQLite由三个组成部分构成:一个支持C语言接口并处理编译后的SQL代码的核心、一个用于生成SQL代码的编译器以及另一个管理数据库底层功能的后端。

Performance Measurements of MBEDTLS

因此我们定义BEDMTLS配置的时间度量指标为以秒计的时间值该指标需对输入数据进行加密并确保其安全传输采用2GB的随机数据作为基准测试用例以确保基准测试在最短情况下至少需要5秒钟完成同时减少预热效应可能带来的结果偏差在测试中重复执行基准测试30次以保证统计显著性并确保网络延迟不会影响最终结果

Performance Measurements of SQLITE

在构建基准测试时,我们所采用的特性SQLite具体来说是在进行基准测试时被调用的。基于秒作为时间单位来衡量执行时间。为了尽量减少预热效应及测量偏差的影响,在建议最少运行25秒的前提下,并在每次运行中重复该操作30次以获得准确结果。

Results

Control-Flow Interactions

MBEDTLS

总体而言,在MBEDTLS中我们确定了575,571个控制流交互事件,并发现其中有84项是独一无二的。值得注意的是,在这些事件中有一些互动涉及多达10个功能模块的变化(注:原文中的'变化'被替换为'功能'),而大部分互动则发生在两个功能模块之间。

SQLITE

在SQLite中发现共有14,587,335个控制流互动记录,并识别出其中仅有的39项为独特事件。受TYPECHEF技术局限性的影响,在其分析过程中未能识别MBEDTLS中的间接控制流互动以及SQLite运行时状态变化所引发的相关事件。通过手动审查原始代码文件来捕获这些未被检测到的互动。

Performance Interactions

基于领域知识以及对源代码进行的手动审查,我们验证了所识别的交互确实存在,从而提升了该研究在内部的有效性。

MBEDTLS

总体而言,在MBEDTLS中实现了16项性能交互功能。就其分布情况而言,在两个特征之间实现了11项性能交互,在三个特征之间确立了5项性能交互

SQLITE

在SQLite中,我们对性能指标进行了识别。对于两个特性而言,在其间形成了两个交互关系。

Relating Interactions

研究发现,在16个明确的性能交互操作与一到几个控制流交互之间均存在关联。

Jaccard索引显示,在自动检测到的控制流交互中通常不完全包含与相关性能交互相同的属性。具体来说,在这些自动检测到的控制流交互中所涉及的属性数量在数量上是后者(即相关性能交互)的两倍多。

手动添加的控制流交互涉及与相应的性能交互完全相同的特性。

Predicting Performance Interactions

鉴于它们与控制流交互具有关联性,并且我们为这些特性定义了两个预测器。其中第一个预测器建立在以下假设基础之上:每一个控制流互动都会产生一系列具有完全相同特性的一系列性能互动。

第二个预测器基于以下假设:在控制流交互中循环特征反映了相关性能关系。评估结果显示其预测精度和召回率指标普遍偏低。

Discussion

基于我们的研究结果,我们得出了重要结论:即控制流程与其相关的性能交互之间呈现出可量化的关联性。为了验证这一发现的具体表现形式,在此我们采用了人工分析代码结构的方法,并对检测到的性能交互涉及的关键特性进行了深入分析;同时深入探讨了它们与控制流程之间的相互作用机制。

这些潜在的性能交互涵盖了我们确定的所有3个实际存在的性能交互。换言之,这一操作使得搜索空间缩减至原来的四分之一。研究结果对于基于机器学习及依赖采样的训练数据集构建方法具有直接影响:通过采用我们的发现成果,研究者可以将采样重点转移至可能包含交互特征的配置设置上。这种调整有望显著提升预测准确性。

进一步的观察与控制流和性能交互中涉及的特性数量的分布有关。

然而我们已经证实,在识别控制流与性能交互之间领域方面的成功研究表明这一点。这项结果表明这一关联的存在性,并非意味着其普遍适用于所有系统。它所起的作用更像是为后续工作的开展提供了一套可遵循的标准。基于我们的概念框架来进行相关领域的深入探索将是未来研究的一个合理方向。通过分析数据流与控制流之间的作用机制来构建性能交互预测器的方法可能会显著提升其准确性和召回率。

Threats to Validity

受限于TYPECHEF技术限制,在本研究中我们难以准确计算特性间间接函数调用的数量(即通过函数指针实现的部分),这将导致对应项集的支持度难以确切得出(参考第4.4节)。基于其静态特性的呼叫图分析可能会导致关于_call_信息的估计性质,并对系统的内部有效性造成影响。

该研究方法的一个显著缺点是其无法有效地适应多个合理的大规模可配置系统的应用;实际上,在这种情况下可能会削弱我们的研究外部有效性这一结论的有效性;因为仅针对两个特定系统的分析结果可能无法推广至其他高度灵活且多变的系统。

我们有条不紊地将相关任务分派给一个特征交互模块,并由此揭示出以往研究通常仅关注单一的交互类别这一现象及其局限性

Conclusion

除这一负面结果外,在应用确认的过程中会导致某些特定特性的体现出现在控制流与互动关系中。我们仍可将搜索范围缩减至原来的水平,并且这些缩减后的性能特性和互动性依然存在于我们的主题系统中。借助BEDMTLS技术, 搜索速度提升至原来的300倍, 而SQLite版本仅需4倍的时间。在不丢弃任何性能特性的前提下, 我们的主题系统中的互动确实存在

基于成熟的过程间数据流分析的方法将被用于扩展TYPECHEF (von Rhein et al. 2018)之后,则自然地采用数据流交互技术来增强我们的预测器。如前所述,在第五节中已经阐述了这一观点:引入数据流交互技术能够显著提升预测器的精确度和召回率。

全部评论 (0)

还没有任何评论哟~