首页> 外文期刊>Automated software engineering >Identifying and understanding header file hotspots in C/C++ build processes
【24h】

Identifying and understanding header file hotspots in C/C++ build processes

机译:识别和理解C / C ++构建过程中的头文件热点

获取原文
获取原文并翻译 | 示例

摘要

Software developers rely on a fast build system to incrementally compile their source code changes and produce modified deliverables for testing and deployment. Header files, which tend to trigger slow rebuild processes, are most problematic if they also change frequently during the development process, and hence, need to be rebuilt often. In this paper, we propose an approach that analyzes the build dependency graph (i.e., the data structure used to determine the minimal list of commands that must be executed when a source code file is modified), and the change history of a software system to pinpoint header file hotspots-header files that change frequently and trigger long rebuild processes. Through a case study on the GLib, PostgreSQL, Qt, and Ruby systems, we show that our approach identifies headerfile hotspots that, if improved, will provide greater improvement to the total future build cost of a system than just focusing on the files that trigger the slowest rebuild processes, change the most frequently, or are used the most throughout the codebase. Furthermore, regres- sion models built using architectural and code properties of source files can explain 32-57 % of these hotspots, identifying subsystems that are particularly hotspot-prone and would benefit the most from architectural refinement.
机译:软件开发人员依靠快速构建系统来逐步编译其源代码更改并生成经过修改的可交付结果以进行测试和部署。易于触发重建过程缓慢的头文件,如果它们在开发过程中也经常更改,则最成问题,因此需要经常重建。在本文中,我们提出一种方法来分析构建依赖关系图(即,用于确定在修改源代码文件时必须执行的最小命令列表的数据结构),以及对软件系统进行更改的历史记录。查明频繁更改并触发漫长的重建过程的头文件热点-头文件。通过对GLib,PostgreSQL,Qt和Ruby系统的案例研究,我们表明,我们的方法确定了头文件热点,如果改进了这些头文件热点,则将使系统未来的总构建成本得到更大的改善,而不仅仅是关注触发文件。重建过程最慢,更改最频繁或在整个代码库中使用最多。此外,使用源文件的体系结构和代码属性构建的回归模型可以解释这些热点中的32-57%,从而识别出特别容易发生热点的子系统,并从体系结构改进中受益最大。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号