Оскільки я намагаюся знайти бібліотеку швидких графіків для показу графіків на мобільних пристроях, для мене була важлива продуктивність. Він також повинен мати ліцензію, яка дає змогу комерційно використовувати. Я порівняв:
- c3, який базується на d3 і тому використовує SVG
- chart.js, який використовує canvas
Діаграми завантажуються всередину компонента WebView усередині власного додатка, і всі дані (включаючи бібліотеку JS) є локальними, тому не виникає уповільнення через http-запитів. Щоб ще більше збільшити продуктивність, я додатково розміщую все в одному файлі.
Я завантажив 4 діаграми (рядок, стовпчик, пиріг, комбінований рядок / рядок) із приблизно 500 точками даних.
Мій час вимірювання виключав фактичне завантаження сторінки html. Я виміряв форму з моменту, коли я почав використовувати код бібліотеки діаграм до кінця візуалізації. Усі анімації діаграм вимкнено.
C3 зайняв близько 1500-1800 мс на сучасних пристроях Android та IPhone. iPhone працював приблизно на 100 мс краще, ніж Android.
Chart.js зайняв близько 400-800 мс. Android працював приблизно на 300 мс краще, ніж iPhone.
Не дивно, SVG працює повільніше. Залежно від вашого варіанту використання, може бути занадто повільним.
На настільному комп'ютері візуалізація в c3 становила близько 150-200 мс, а charts.js - близько 80-100 мс. Запуск одного і того ж тесту в емуляторі Android та iPhone дав ті самі результати, що і на робочому столі. Тож уповільнення роботи мобільних пристроїв, безумовно, пов’язане з обмеженнями апаратного забезпечення / обробки.
Сподіваюся, це допомагає