Restore (or beat) Python 2 performance for arithmetic operations on ints that fit into a single word

未關閉
#101,291 7 則留言 3 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
5/5
預估耗時
一週以上
新手友好度
15/100
Issue 類型
重構
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
python

研究方向

先從 faster-cpython/ideas#548 中較完整的討論開始,然後檢視相關聯的 pull request:gh-101292、gh-101685、gh-102464、gh-104742、gh-104759、gh-107388、gh-107392、gh-125384、gh-125407 和 gh-125408。完成的標準是採用新的 int/long 物件配置,使單字整數的算術運算效能恢復到 Python 2 的水準或超過該水準。

由索引模型根據 Issue 內容生成。

描述

interpreter-core performance

In Python 2 ints and longs were different objects, and the design of each was tailored to the different size and use cases.
In Python3 we dropped the distinction, but we also dropped the design for ints that fit into a single word.
We have added various fast paths for "medium" integers (e.g. https://github.com/python/cpython/issues/89109) but the underlying data structure gets in the way.

We should layout the int/long object so that it supports fast operations for most integers.

See https://github.com/faster-cpython/ideas/issues/548 for a fuller discussion

Linked PRs
  • gh-101292
  • gh-101685
  • gh-102464
  • gh-104742
  • gh-104759
  • gh-107388
  • gh-107392
  • gh-125384
  • gh-125407
  • gh-125408
主要語言
Python
星號
77.2k
分支
36k
平均合併
1 天 9 小時
30 天內合併 PR
558

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

python/cpython 的其他 Issue

查看 python/cpython 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。