matplotlib / matplotlib/ipympl
Optimizations
Personne n'a encore pris cette issue.
- Langage dominant
- Jupyter Notebook
- Étoiles
- 1.7k
- Forks
- 234
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I feel like there could be some optimizations concerning the image update.
- We should draw binary data directly on the canvas using:
context.putImageData(binary_data);
instead of creating a Blob that is png encoded. That would also allow the back-end to not waste time encoding into png (if that is possible).
- I feel like the "diff" computation should actually be slower than sending the full image, as it needs an extra computation of "which pixels actually needs a redraw?": https://github.com/matplotlib/matplotlib/blob/5fc44eea64a57ab1c6d236cf7c71906c9d40e6f6/lib/matplotlib/backends/backend_webagg_core.py#L190-L195.
Plus, we are still sending a full image. Maybe the png encoding does some compression if lots of pixels are transparent? If that is not the case, we are still sending the same amount of data.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le code de mise à jour des images référencé dans matplotlib/backends/backend_webagg_core.py et suivez le point d’entrée correspondant pour la mise à jour du canvas dans ipympl. Comparez le chemin proposé pour les données binaires avec les chemins PNG et diff actuels, et définissez des benchmarks et des critères d’acceptation avant de modifier l’un ou l’autre côté.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, python
- Domaine
- backend, frontend, performance
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100