Dado que estoy tratando de encontrar una biblioteca de gráficos rápida para mostrar gráficos en dispositivos móviles, el rendimiento fue importante para mí. También tenía que tener una licencia que permitiera su uso comercial. Yo comparé:
- c3, que se basa en d3 y, por lo tanto, usa SVG
- chart.js que está usando canvas
Los gráficos se cargan dentro de un componente WebView dentro de una aplicación nativa y todos los datos (incluida la biblioteca JS) son locales, por lo que no hay ralentización debido a solicitudes http. Para maximizar aún más el rendimiento, también coloco todo dentro de un solo archivo.
Cargué 4 gráficos (línea, barra, pastel, combinación de línea / barra) con alrededor de 500 puntos de datos.
Mi medición de tiempo excluyó la carga real de la página html. Medí desde el momento en que comencé a usar el código de la biblioteca de gráficos hasta el final del renderizado. Se desactivó toda la animación del gráfico.
C3 tomó alrededor de 1500-1800 ms en dispositivos Android e iPhone modernos. iPhone funcionó alrededor de 100 ms mejor que Android.
Chart.js tomó alrededor de 400-800ms. Android funcionó alrededor de 300 ms mejor que el iPhone.
No es de extrañar, el SVG es más lento. Dependiendo de su caso de uso, tal vez sea demasiado lento.
En una computadora de escritorio, la renderización en c3 fue de alrededor de 150-200ms y charts.js alrededor de 80-100ms. La ejecución de la misma prueba en el emulador de Android y iPhone tuvo el mismo resultado que en el escritorio. Así que la ralentización de los dispositivos móviles se debe definitivamente a los límites de procesamiento / hardware.
Espero que ayude