matplotlib / matplotlib/ipympl

Optimizations

Abierto
#103 1 comentario 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Jupyter Notebook
Estrellas
1.7k
Forks
234
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I feel like there could be some optimizations concerning the image update.

1. We should draw binary data directly on the canvas using:
```javascript
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).

2. 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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el código de actualización de imágenes referenciado en matplotlib/backends/backend_webagg_core.py y rastrea el punto de entrada correspondiente para la actualización del canvas en ipympl. Compara la ruta propuesta para datos binarios con las rutas actuales de PNG y diff, y define benchmarks y criterios de aceptación antes de cambiar cualquiera de los dos lados.

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

Evaluación

Stack tecnológico
javascript, python
Área
backend, frontend, performance
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.