re is much slower than cpython
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- python
- 领域
- performance
调研方向
首先运行附带的 script.zip 复现,并比较 Python 3.12 和 GraalPy 的耗时。检查 cpusampler 确定的 _sre _search 热点以及入口点 run.py。当正则表达式工作负载不再显示报告中的性能下降,并且复现耗时记录了改进时,即视为完成。
由索引模型根据 Issue 内容生成。
描述
I've been adding graal support to a classifier type project naively based on applying a bunch of regexes to an input, and while Graal works the regex application is quite slow: it's about 4x slower than cpython, while using 4 times the CPU.
Here's a repro script and attending data (basically a cut down version of the naive classifier implementation): script.zip
timings:
> python3.12 --version
Python 3.12.6
> time python3.12 run.py
75158 lines in 11.7s
156.1 us/line
python3.12 run.py 11.77s user 0.05s system 97% cpu 12.172 total
> graalpy --version
GraalPy 3.11.7 (Oracle GraalVM Native 24.1.0)
> time graalpy run.py
75158 lines in 48.2s
640.7 us/line
graalpy run.py 192.00s user 1.00s system 394% cpu 48.976 total
This is on a 10-core M1 Pro. Using cpusampler I confirmed that essentially all the "user" time is in _sre:
_search || 43580ms 98.6% || 43580ms 98.6% || <frozen graalpy._sre>~1:0
- 主要语言
- Python
- 星标
- 1.6k
- 派生
- 155
- 平均合并
- 7 小时 35 分钟
- 30 天内合并 PR
- 48
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
oracle/graalpython 的其他 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 74/100
oracle/graalpython#1105 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
oracle/graalpython#1102 ·
维护者通常 1 天内回复
-
bug
难度 5/5 一周以上 新手友好度 35/100
oracle/graalpython#1169 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
bug
难度 3/5 1-2 天 新手友好度 74/100
oracle/graalpython#1133 ·
维护者通常 1 天内回复
-
bug
难度 3/5 1-2 天 新手友好度 68/100
oracle/graalpython#1112 ·
维护者通常 1 天内回复
查看 oracle/graalpython 的全部 Issue
相似的 Issue
-
needs triage
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
openvinotoolkit/openvino_notebooks#3665 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
docs
难度 2/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
benchmark-gap
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复