面向时空高效的git仓库挖掘工具
软件工程
2022-05-04 v1
摘要
受版本控制的软件项目随每次提交而增长,每个仓库可累积多达数十万次提交。尤其对于此类大型项目,仓库遍历与用于静态源代码分析的数据提取在粒度与速度之间存在权衡。我们展示了命令行工具pyrepositoryminer,它结合了一组优化方法,用于从git仓库中高效遍历与数据提取,同时可适配第三方与自定义软件度量及数据提取。该工具用Python编写,结合了裸仓库访问、内存存储、并行化、缓存、基于变更的分析,以及遍历与自定义数据提取组件间的优化通信。该工具支持用Python编写的度量以及用于数据提取的外部程序。基于基本挖掘用例的单线程性能评估显示,在四个中型开源项目上相对于其他免费可用工具取得了15.6倍的平均加速。多线程执行可实现核间负载分布,从而在使用12线程时达到最高86.9倍的平均加速。
引用
@article{arxiv.2205.01351,
title = {Tooling for Time- and Space-efficient git Repository Mining},
author = {Fabian Heseding and Willy Scheibel and Jürgen Döllner},
journal= {arXiv preprint arXiv:2205.01351},
year = {2022}
}