grpc / grpc/grpc-java

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

Abierto
#452 3 comentarios 0 reacciones 0 asignados Ver en GitHub
performance
Lenguaje dominante
Java
Estrellas
12.1k
Forks
4k
Merge medio
2 d 17 h
PR fusionados (30 d)
37

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start by locating the Netty framer path that handles a small write and flush, focusing on pooled direct buffers and the readable-byte limit. Benchmark streaming workloads that write and flush many messages in a tight loop, and consider the work done when the unwritten buffer portion is returned to the pool and performance impact is measured.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
backend, performance
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.