Improving representative benchmarks for typing ecosystem
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- python
- Lĩnh vực
- performance
Hướng nghiên cứu
Bắt đầu bằng việc xem xét ba lĩnh vực benchmark được mô tả trong issue và các benchmark pydantic hiện có được liên kết ở đó. So sánh các lựa chọn đó với bộ benchmark pyperformance hiện tại, sau đó làm rõ những trường hợp và chương trình benchmark nào nên được đưa vào. Công việc được xem là hoàn tất khi đã thống nhất một phạm vi benchmark mang tính đại diện và các benchmark được chọn đã được upstream.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Due to a current lack of representative macrobenchmarks, it is very difficult to decide on whether complex accelerators for some parts of typing are worth implementing in the future. Hence, I'm trying to upstream some benchmarks into pyperformance.
IMO, there are three main areas:
- Performance of static type checkers implemented in Python (e.g. mypy). (Fixed by #102)
- Performance of programs using types at runtime (e.g. pydantic, attrs, etc.).
- Runtime overhead of typed code vs fully untyped code.
For case 2, I plan to use one of pydantic's benchmarks here https://github.com/samuelcolvin/pydantic/tree/master/benchmarks, installed without compiled binaries.
Case 3 is very tricky because there are so many ways to use typing. I don't know how often people use certain features, whether they type-hint inside tight loops, etc. So I'm struggling to find a good benchmark. An idea: grabbing one of the existing pyperformance benchmarks, fully type-hinting it, then comparing the performance delta may work.
CC @JelleZijlstra, I would greatly appreciate hearing your opinion on this (especially for case 3). Maybe I can post this on typing-sig too if I need more help.
Afterword:
All 3 cases benefit from general CPython optimizations. But usually only 3. benefits greatly from typing module-only optimizations (with 1. maybe not improving much if at all, depending on implementation).
- Ngôn ngữ chính
- Python
- Star
- 1k
- Fork
- 203
- Merge trung bình
- 1 giờ 20 phút
- Pull request đã merge (30 ngày)
- 2
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của python/pyperformance
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
python/pyperformance#346 · 3 bình luận ·
-
python/pyperformance#474 · 4 reaction · 1 người được giao ·
-
Enable decimal benchmarks Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 25/100
python/pyperformance#473 ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
python/pyperformance#464 ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
python/pyperformance#460 · 2 bình luận · 1 reaction ·
Tất cả issue của python/pyperformance
Issue tương tự
-
Add: hunch Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
AbdelStark/awesome-typesafe#104 ·
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
DiamondLightSource/dodal#2211 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
openml/openml-python#1749 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
sipyourdrink-ltd/bernstein#6191 ·