モバイルデバイスでグラフを表示するための高速なグラフライブラリを見つけようとしているので、パフォーマンスは私にとって重要でした。また、商業的に使用できるようにするライセンスが必要でした。私は比較しました:
- c3、これはd3に基づいているため、SVGを使用します
- キャンバスを使用しているchart.js
グラフはネイティブアプリ内のWebViewコンポーネント内に読み込まれ、すべてのデータ(JSライブラリを含む)はローカルであるため、httpリクエストによる速度低下はありません。パフォーマンスをさらに最大化するために、すべてを1つのファイルに追加しました。
4つのグラフ(線、棒、円、線/棒の組み合わせ)を約500のデータポイントと一緒にロードしました。
私の時間測定は、htmlページの実際の読み込みを除外しました。チャートライブラリコードを使い始めてからレンダリングが終了するまでの時間を測定しました。すべてのチャートアニメーションがオフになりました。
C3は、最新のAndroidおよびiPhoneデバイスで約1500〜1800ミリ秒かかりました。iPhoneはAndroidよりも約100ミリ秒優れたパフォーマンスを示しました。
Chart.jsは約400-800msかかりました。AndroidはiPhoneよりも約300ミリ秒優れたパフォーマンスを示しました。
当然のことながら、SVGは低速です。ユースケースによっては、遅すぎるかもしれません。
デスクトップコンピューターでは、c3でのレンダリングは約150〜200ミリ秒、charts.jsは約80〜100ミリ秒でした。AndroidとiPhoneエミュレーターで同じテストを実行すると、デスクトップと同じ結果になりました。したがって、モバイルデバイスの速度低下は、ハードウェア/処理の制限によるものです。
お役に立てば幸いです