haskell / haskell/binary

optimize small Getters

Đang mở
#124 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Haskell
Star
120
Fork
70
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

After some profiling, i came to the conclusion that current running logic is too complex, in order to support `bytesRead`, we have two `Decoder` type, the overhead of `runGetIncremental` is noticeable when the getter is small(around 100ns compare to cereal on my machine).

This gives binary a disadvantage in various benchmarks, since lots of benchmark just focus on a single combinator, the overhead of running it render this kind of benchmarks meaningless.

There're cases we do need running small getters, but i haven't really need `bytesRead` yet. So let's find a way to improve `bytesRead`, or remove it ?

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

Hướng nghiên cứu

Bắt đầu bằng cách kiểm tra hai kiểu Decoder và đường đi runGetIncremental được mô tả trong issue, sau đó tái hiện overhead getter nhỏ đã được báo cáo bằng các benchmark hiện có. So sánh yêu cầu bytesRead với các trường hợp không cần nó và xác định xem yêu cầu này có thể được cải thiện hoặc loại bỏ hay không. Hoàn thành khi giảm được overhead của getter nhỏ mà không làm mất hành vi bytesRead bắt buộc.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
haskell
Lĩnh vực
backend
Loại issue
Tái cấu trúc
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.