Numerous software systems are highly configurable through run-time options, such as command-line parameters. Users can tune some of the options to meet various functional and non-functional requirements such as footprint, security, or execution time. However, some options are never set for a given system instance, and their values remain the same whatever the use cases of the system. Herein, we design a controlled experiment in which the system's run-time configuration space can be specialized at compile-time and combinations of options can be removed on demand. We perform an in-depth study of the well-known x264 video encoder and quantify the effects of its specialization to its non-functional properties, namely on binary size, attack surface, and performance while ensuring its validity. Our exploratory study suggests that the configurable specialization of a system has statistically significant benefits on most of its analysed non-functional properties, which benefits depend on the number of the debloated options. While our empirical results and insights show the importance of removing code related to unused run-time options to improve software systems, an open challenge is to further automate the specialization process.
翻译:许多软件系统通过运行时间选项(如指令线参数)高度可配置。用户可以调整一些选项,以满足各种功能性和非功能性要求,如足迹、安全性或执行时间。然而,有些选项从未为特定系统实例设定,其值与系统使用实例相同。这里,我们设计了一个控制式实验,该系统运行时间配置空间可以在编译时专门化,各种选项组合可以在需要时删除。我们深入研究了众所周知的 x264 视频编码器,并量化了其专业化对非功能性(即二进制尺寸、攻击表面和性能)的影响,同时确保其有效性。我们的探索性研究表明,系统可配置的专业化在统计上对其大部分分析的非功能特性具有重大效益,其益处取决于拆卸选项的数量。我们的经验结果和洞察显示,删除与未使用运行运行时间选项有关的代码对于改进软件系统的重要性,但一个公开的挑战是如何进一步自动化专业化进程。