万万没想到,除了香农计划,Python3.11竟还有这么多性能提升!( 四 )

纯 ASCII 字符串的 unicodedata.normalize(),提升到常数时间对于 unicodedata.normalize() 方法,如果提供的入参是纯 ASCII 字符串,则通过 unicode 快速检查算法 迅速返回结果 。这项检查使用的是PyUnicode_IS_ASCII 实现 。
Python 3.10:
$ python -m pyperf timeit -s \'import unicodedata' -- 'unicodedata.normalize("NFC", "python")'.....................Mean +- std dev: 83.3 ns +- 4.3 nsPython 3.11:
$ python -m pyperf timeit -s \'import unicodedata' -- 'unicodedata.normalize("NFC", "python")'.....................Mean +- std dev: 34.2 ns +- 1.2 ns最后的话:

  • 我写这篇文章是为了加深自己对 Python 3.11 最新成果的认识 。如果内容有错,请通过email 或者 Twitter告诉我 。(译注:本翻译是出于促进自己学习及加强理解的目的,若有错漏,欢迎指正!)
  • 附 HackerNews 上的评论
  • 在下一篇文章中,我将分析 faster CPython 项目带来的优化点 。敬请期待!

经验总结扩展阅读