[performance] GraalPython is slow when running Cython
@msimacek がすでに取り組んでいます。
2024年7月29日 から。
評価
この issue はまだ評価されていません。
説明
I've been working on getting GraalPython tested on the Cython CI. It mostly works but it's really slow.
One aspect of this is the time spent running Cython itself. Note that this is pure Python code (so it doesn't involve any interaction with your C API emulation, which I know isn't considered a fast path) - while Cython has the option of compiling itself for speed I haven't done so here for the sake of the report.
For the sake of a demo I've just done checked out the cython repository from github and done
time python cython.py Cython/Compiler/*.py
that just runs cython on a bunch of its own files (but only to the c code generation stage, it doesn't invoke any C compilers).
Some results:
Python 3.11.9
-----------
real 1m3.896s
user 0m55.934s
sys 0m4.580s
GraalPython (from the file "graalpy-24.0.2-linux-amd64.tar.gz" from your releases page)
Python 3.10.13 (Thu Jul 04 12:42:45 UTC 2024)
[Graal, Oracle GraalVM, Java 22.0.2] on linux
--------------
real 8m2.008s
user 21m20.609s
sys 0m19.100s
PyPy (pypy3.10-v7.3.12-linux64)
---------------------------------------------
real 4m18.502s
user 4m10.389s
sys 0m0.938s
The upshot is that GraalPython is about 8 times slower than CPython, (and also uses 3 cores of my CPU most of that time while CPython is largely single-threaded).
I've included PyPy just as another data-point. It's also slower for this case (although not quite as slow as GraalPython) so we're clearly doing something that isn't JIT friendly....
I haven't done any profiling beyond this basic measurement (yet).
I do realise this is essentially an enormous code-dump with the complaint "it's slow", which is never a style of bug report that I'm very impressed with when I'm on the receiving end.
- 主要言語
- Python
- スター
- 1.6k
- フォーク
- 155
- 平均マージ
- 8時間 20分
- マージ済み PR(30日)
- 43
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
oracle/graalpython のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
oracle/graalpython#1105 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
oracle/graalpython#1102 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 74/100
oracle/graalpython#1133 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
oracle/graalpython#1112 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
oracle/graalpython#1111 ·
oracle/graalpython の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
stephrobert/dsoxlab#238 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
sublimehq/package_control#1780 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
nwg-piotr/nwg-displays#145 ·