Quicken everything

オープン
#98,686 コメント 1 件 リアクション 0 件 担当者 1 名 GitHub で見る

@brandtbucher がすでに取り組んでいます。

2022年10月25日 から。

評価

この issue はまだ評価されていません。

説明

3.12 interpreter-core performance

...as discussed in https://github.com/faster-cpython/ideas/issues/462.

Basically, we can simplify the quickening process by quickening code objects as they are created. This works by ditching our per-code-object warmup counter, and instead using our adaptive backoff counters for more-granular "warming".

I have a branch that implements this change, resulting in consistent a ~1% performance improvement. I imagine that this comes from several places:

  • A lower specialization threshold. I tried a wide range of initial adaptive counter values (ranging from 0 to 4095), and a value of 1 worked best. With this value, adaptive instructions will specialize the second time they are run.
  • A simpler interpreter loop. RESUME_QUICK and JUMP_BACKWARD_QUICK are no longer needed.
  • Superinstructions everywhere. All code objects have superinstructions now.

Next steps will be simplifying the unmarshal / code creation process as part of this same work.

  • PR: gh-98687
  • PR: gh-99106
  • PR: gh-99182
  • PR: gh-99399
主要言語
Python
スター
77.2k
フォーク
36k
平均マージ
1日 9時間
マージ済み PR(30日)
558

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

python/cpython のほかの issue

python/cpython の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。