中文

以 Pythonic 禅意编码能否达到峰值性能?九种 Pythonic 惯用法的规模化初步实验

软件工程 2022-03-29 v1

摘要

在数据科学领域以及学界普遍而言,Python 编程语言是热门选择,主要因其用于存储、操纵和从数据中获取洞察的库。证据包括用于不断增长可用数据规模的多样化机器学习、数据可视化与操纵包。Python 之禅是一组指导设计原则,开发者用以编写可接受且优雅的 Python 代码。多数原则围绕简洁性。然而,随着计算大量数据的需求,性能已成为 Python 程序员的必需。本文的新意在于确认以 Pythonic 方式编写是否在规模化下达到峰值性能。作为起点,我们进行一组初步实验,通过比较 Pythonic 与非 Pythonic 代码片段的性能来评估九个 Pythonic 代码示例。我们的结果显示,以 Pythonic 惯用法编写可节省内存与时间。我们表明引入列表推导、生成器表达式、zip 及 itertools.zip_longest 惯用法可节省高达 7000 MB 与高达 32.25 秒。结果引发了关于其如何在真实世界环境中被利用的更多问题。复现包包含所有脚本,结果可见于 https://doi.org/10.5281/zenodo.5712349

关键词

引用

@article{arxiv.2203.14484,
  title  = {Does Coding in Pythonic Zen Peak Performance? Preliminary Experiments of Nine Pythonic Idioms at Scale},
  author = {Pattara Leelaprute and Bodin Chinthanet and Supatsara Wattanakriengkrai and Raula Gaikovina Kula and Pongchai Jaisri and Takashi Ishio},
  journal= {arXiv preprint arXiv:2203.14484},
  year   = {2022}
}

备注

To be published in the proceedings of the 30th IEEE/ACM International Conference on Program Comprehension (ICPC)