danielgtaylor / danielgtaylor/python-betterproto

Decoding performance in comparison to vanilla protoc

Ouverte
#153 16 commentaires 2 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
1.8k
Forks
234
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par examiner les benchmarks existants de sérialisation/désérialisation ainsi que le travail effectué dans pull request 46, puis ajoutez une comparaison avec le Google protoc plugin standard pour le décodage binaire. La tâche est terminée lorsque le benchmark explique l’écart de performances signalé et que les performances du décodage sont améliorées ou que la limitation est documentée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
performance
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.