Mobil cihazlarda grafikleri göstermek için hızlı bir grafik kitaplığı bulmaya çalıştığım için performans benim için önemliydi. Ticari olarak kullanılmasını mümkün kılan bir lisansa da sahip olması gerekiyordu. Ben karşılaştırdım:
- d3'e dayalı olan ve bu nedenle SVG kullanan c3
- Canvas kullanan chart.js
Grafikler, yerel bir uygulama içindeki bir WebView bileşeninin içine yüklenir ve tüm veriler (JS kitaplığı dahil) yereldir, dolayısıyla http isteklerinden kaynaklanan yavaşlama olmaz. Performansı daha da artırmak için, ayrıca her şeyi tek bir dosyaya koyuyorum.
Yaklaşık 500 veri noktasıyla birlikte 4 grafik (çizgi, çubuk, pasta, çizgi / çubuk birleşik) yükledim.
Zaman ölçümüm html sayfasının gerçek yüklenmesini dışladı. Grafik kitaplığı kodunu kullanmaya başladığım andan, işlemenin sonuna kadar ölçtüm. Tüm grafik animasyonu kapatıldı.
C3, modern Android ve iPhone cihazlarında yaklaşık 1500-1800 ms sürdü. iPhone, Android'den yaklaşık 100 ms daha iyi performans gösterdi.
Chart.js yaklaşık 400-800ms sürdü. Android, iPhone'dan yaklaşık 300 ms daha iyi performans gösterdi.
Şaşırtıcı değil, SVG daha yavaş. Kullanım durumunuza bağlı olarak çok yavaş olabilir.
Bir masaüstü bilgisayarda c3'te görüntü oluşturma yaklaşık 150-200ms ve charts.js yaklaşık 80-100ms idi. Aynı testi Android ve iPhone emülatöründe çalıştırmak, masaüstündeki ile aynı sonucu verdi. Dolayısıyla, mobil cihazlardaki yavaşlama kesinlikle donanım / işlem limitlerinden kaynaklanmaktadır.
umarım yardımcı olur