danielgtaylor / danielgtaylor/python-betterproto

Decoding performance in comparison to vanilla protoc

Abierto
#153 16 comentarios 2 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Python
Estrellas
1.8k
Forks
234
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Hi,

I switched to betterproto from the vanilla Google protoc plugin for Python. So far I am really happy with the generated API and the benefits that come with it.

However, I observed that the decoding performance of binary protobuf messages decreased significantly with the switch to betterproto. In my tests the vanilla protoc plugin was approx. 250-300x faster.

Is this a known problem? I have seen that there has been work on the serialize/deserialize performance (e.g. https://github.com/danielgtaylor/python-betterproto/pull/46) and that there have been benchmarks added to the betterproto codebase. However, as far as I have seen these are checking for introduced bottlenecks in betterproto commits and do not compare the performance of betterproto to vanilla protoc.

I would be more than happy if someone could comment on this. I would really like to continue to use betterproto but this performance bottleneck is currently a blocker.

Many thanks in advance!

Jan

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza revisando los benchmarks existentes de serialización/deserialización y el trabajo realizado en pull request 46; después, añade una comparación con el Google protoc plugin sin modificaciones para la decodificación binaria. Se considera terminado cuando el benchmark explica la diferencia de rendimiento indicada y el rendimiento de la decodificación mejora o se documenta la limitación.

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

Evaluación

Stack tecnológico
python
Área
performance
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
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.