更快还是更慢?基于实证证据的 Python 惯用法性能之谜揭示
软件工程
2023-01-31 v1
摘要
在针对 Stack Overflow 上 101 个 Python 惯用法性能相关问题的形成性研究中,我们发现开发者常对 Python 惯用法的性能影响感到困惑,并使用轶玩具代码或依赖个人项目经验,而这些经验在性能结果上常相互矛盾。目前尚无大规模、系统的实证证据来调和这些性能争论。在本文中,我们针对 Zhang 等人识别的九种独特 Python 惯用法,创建了一个包含 24,126 对非惯用法与功能等价惯用法代码的大型合成数据集,并复用了 Zhang 等人提供的 54,879 对真实项目代码对的大型数据集。我们开发了一种可靠的性能测量方法,以比较惯用法代码相对于非惯用法对应代码的速度提升或下降,并分析了合成代码与真实项目代码之间的性能差异、代码特征与性能变化之间的关系,以及字节码层面性能变化的根源。我们将发现总结为使用 Python 惯用法的一些可操作建议。
引用
@article{arxiv.2301.12633,
title = {Faster or Slower? Performance Mystery of Python Idioms Unveiled with Empirical Evidence},
author = {Zejun Zhang and Zhenchang Xing and Xin Xia and Xiwei Xu and Liming Zhu and Qinghua Lu},
journal= {arXiv preprint arXiv:2301.12633},
year = {2023}
}
备注
12 pages, accepted to ICSE'2023