论文
CppPerf:用于提高 C++ 提交性能的自动化管道和数据集
CppPerf: An Automated Pipeline and Dataset for Performance-Improving C++ Commits
摘要
自动修复性能错误的最新进展需要现实的、可执行的基准测试。然而,现有的 C++ 性能基准测试主要是根据竞争性编程提交构建的,而最近的实际基准测试主要针对 Python 和 .NET。为了填补这一空白,我们推出了 CppPerf-Mine,这是一个可配置的管道,它通过结合结构提交过滤、基于 LLM 的提交分类器以及为每个补丁生成完全可重现的 Docker 映像的容器化构建和测试阶段,从 GitHub 上的开源 C++ 存储库中挖掘执行时间改进的补丁。使用 CppPerf-Mine,我们构建了 CppPerf-DB,这是一个基准测试,包含来自 42 个成熟 C++ 存储库的 347 个手动验证的补丁,其中 39% 是多文件,从而能够评估存储库级修复工具。在我们的初步研究中,OpenHands 仅正确修复了 CppPerf-DB 中 13.5% 的补丁,这证实了现实世界中的 C++ 性能修复仍然是一个开放的挑战。 CppPerf-Mine 和 CppPerf-DB 是开源的,可公开访问:https://doi.org/10.5281/zenodo.20097425。此外,还可以在以下网址获取演示视频:https://www.youtube.com/watch?v=nixlupIgSdM。