Who is in Charge here? Understanding How Runtime Configuration Affects Software along with Variables&Constants
作者: Chaopeng Luo, Yuanliang Zhang, Haochen He, Zhouyang Jia, Teng Wang, Shulin Zhou, Si Zheng, Shanshan Li
发布时间: 2025-04-02
来源: arxiv
研究方向: 软件配置与性能
主要内容
本文研究了运行时配置如何通过参数、常量和变量(PCV)之间的交互影响软件行为。通过对10个大型软件系统中的705个配置参数进行源代码级别的分析,揭示了PCV交互的常见性、类型、模式、影响和潜在问题。
主要贡献
1. 从PCV交互的角度,提出了配置对软件运行时影响的新视角。
2. 发现了新的见解,揭示了PCV交互的“双刃剑”特性,有助于开发者和用户更好地设计和使用配置。
3. 发布了用于该领域未来研究的PCV研究数据集。
研究方法
1. 选择10个不同领域的成熟、广泛使用的软件系统。
2. 收集默认配置文件中的参数,并随机抽样。
3. 使用taint分析工具追踪参数在源代码中的传播和利用。
4. 手动分析收集到的PCV交互案例,并研究其背后的代码和知识。
5. 分析PCV交互的模式和影响,并识别潜在问题。
实验结果
研究发现,66.4%的配置参数在解析后会与其他常量或变量交互,这些交互对软件性能和可靠性有重大影响。分析了七种交互模式,并确定了它们对软件行为的影响。还发现了PCV交互的潜在问题,如日志信息不足、缺乏即时更新支持等。
未来工作
开发新的自动化技术来帮助用户正确配置软件,并帮助开发者设计更好的配置。研究种子突变策略,以覆盖尽可能多的PCV代码。自动提取交互信息,并生成详细的日志信息。提供即时更新机制,以解决运行时配置问题。自动调整用户设置的配置值,以适应运行时环境和工作负载。自动预测阈值,并使阈值弹性化。监控优化相关的变量,并设计策略来自动建议用户打开优化参数的场景。