haskell / haskell/binary

optimize small Getters

Abierto
#124 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Haskell
Estrellas
120
Forks
70
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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 ?

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Start by examining the two Decoder types and the runGetIncremental path described in the issue, then reproduce the reported small-getter overhead with the existing benchmarks. Compare the bytesRead requirement with the cases that do not need it and determine whether it can be improved or removed. Done means reducing the small-getter overhead without losing required bytesRead behavior.

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

Evaluación

Stack tecnológico
haskell
Área
backend
Tipo de issue
Refactorización
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.