Benchmarks for common python I/O patterns
Chưa có ai nhận issue này.
- 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
Mô tả
As work happens on I/O pieces I've been building specialized micro-benchmarks (ex. gh-120754 Speed up open().read() pattern by reducing the number of system calls and others have gh-117151: IO performance improvement, increase io.DEFAULT_BUFFER_SIZE to 128k), it would be nice to have more general benchmarks to validate I/O performance for common cases.
Talking a little with people at PyConUS there was some interest in the tests, and a general desire for I/O tests not to be enabled by default, but to be a group which can be manually run.
General I/O shapes I'm hoping to add benchmarks for:
- read/write all of the byes of a file in a single call (including pathlib.Path.read_text, pathlib.Path.write_text)
- read/write many small files (ex.
.pycfiles, maybe justcompile_all?) - streaming bytes read/write (ex. to a pipe / console such as stdin/stdout/stderr, non-seekable devices)
- read/write a zipfile, tarfile (read + seek, write + seek, in particular buffering behavior)
- use
zipimport - Create a
zipapp - Multi-threaded write to stdout, stderr (ex. logging in a large application/codebase)
Note: With these aiming to stay at the Binary / Bytes IO layer as much as possible (not touch Text I/O for now)
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.
Hướng nghiên cứu
Xem xét cách tổ chức hiện có của các benchmark pyperformance và các dạng I/O được đề xuất trong issue này, giữ phạm vi ở tầng Binary/Bytes IO. Xác định một nhóm có thể chạy thủ công, bao phủ các trường hợp phổ biến đã chọn, sau đó xác minh rằng nhóm này không được bật theo mặc định và rằng các benchmark thực thi đúng các mẫu về tệp, stream, archive, import hoặc concurrency đã định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- performance
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100