grpc / grpc/grpc-java

Netty streams should reduce the capacity of pooled buffers passed to sendFrame

Đang mở
#452 3 bình luận 0 reaction 0 người được giao Xem trên GitHub
performance
Ngôn ngữ chính
Java
Star
12.1k
Fork
4k
Merge trung bình
2 ngày 17 giờ
Pull request đã merge (30 ngày)
37

Mô tả

When a small write and flush is passed through the framer we hold the full 4k of the buffer until the write completes. By reducing the capacity of a pool direct buffer to the readably byte limit we immediately release the unwritten portion of the buffer back to the pool.

This may or may not have an impact on performance and utility should be evaluated by bencmarking. It may improve performance by making more bytes available to thread-local allocation. The most likely benchmarks to be impacted would be streaming ones that write and flush many messages in a tight loop as it would alleviate buffer-arena locks.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách xác định đường dẫn framer của Netty xử lý một lần ghi và flush nhỏ, tập trung vào các direct buffer được pool và giới hạn byte có thể đọc. Benchmark các workload streaming ghi và flush nhiều message trong một vòng lặp sát nhau, đồng thời xem xét phần công việc được thực hiện khi phần buffer chưa được ghi được trả về pool và tác động đến hiệu năng được đo lường.

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

Đánh giá

Công nghệ
java
Lĩnh vực
backend, 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

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.