Поскольку я пытаюсь найти библиотеку быстрых диаграмм для отображения диаграмм на мобильных устройствах, производительность была важна для меня. Он также должен был иметь лицензию, позволяющую использовать его в коммерческих целях. Я сравнил:
- c3, который основан на d3 и поэтому использует SVG
- chart.js, использующий холст
Диаграммы загружаются внутри компонента 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 дало тот же результат, что и на компьютере. Таким образом, замедление работы мобильных устройств определенно связано с ограничениями оборудования / обработки.
надеюсь, это поможет