เนื่องจากฉันพยายามค้นหาไลบรารีแผนภูมิที่รวดเร็วเพื่อแสดงแผนภูมิบนอุปกรณ์เคลื่อนที่ประสิทธิภาพจึงสำคัญสำหรับฉัน นอกจากนี้ยังต้องมีใบอนุญาตที่ทำให้สามารถใช้ในเชิงพาณิชย์ได้ ฉันเปรียบเทียบ:
- c3 ซึ่งขึ้นอยู่กับ d3 จึงใช้ SVG
- chart.js ซึ่งใช้ canvas
แผนภูมิจะโหลดภายในคอมโพเนนต์ WebView ภายในแอปเนทีฟและข้อมูลทั้งหมด (รวมถึงไลบรารี JS) อยู่ในเครื่องดังนั้นจึงไม่ช้าลงเนื่องจากคำขอ http เพื่อเพิ่มประสิทธิภาพสูงสุดให้มากขึ้นฉันยังใส่ทุกอย่างไว้ในไฟล์เดียว
ฉันโหลดแผนภูมิ 4 รายการ (เส้น, บาร์, วงกลม, เส้น / แถบคำสั่งผสม) พร้อมกับจุดข้อมูลประมาณ 500 จุด
การวัดเวลาของฉันไม่รวมการโหลดหน้า html จริง ฉันวัดรูปแบบในช่วงเวลาที่ฉันเริ่มใช้รหัสไลบรารีการสร้างแผนภูมิจนกระทั่งสิ้นสุดการแสดงผล ภาพเคลื่อนไหวของแผนภูมิทั้งหมดถูกปิด
C3 ใช้เวลาประมาณ 1,500-1800 มิลลิวินาทีในอุปกรณ์ Android และ iPhone ที่ทันสมัย iPhone ทำงานได้ดีกว่า Android ประมาณ 100 มิลลิวินาที
Chart.js ใช้เวลาประมาณ 400-800ms Android ทำงานได้ดีกว่า iPhone ประมาณ 300 มิลลิวินาที
ไม่แปลกใจเลยที่ SVG ช้ากว่า อาจช้าเกินไปขึ้นอยู่กับกรณีการใช้งานของคุณ
บนคอมพิวเตอร์เดสก์ท็อปการแสดงผลใน c3 อยู่ที่ประมาณ 150-200ms และ charts.js ประมาณ 80-100ms การเรียกใช้การทดสอบเดียวกันในโปรแกรมจำลอง Android และ iPhone มีผลเช่นเดียวกับบนเดสก์ท็อป ดังนั้นอุปกรณ์พกพาที่ทำงานช้าลงจึงเกิดจากขีด จำกัด ของฮาร์ดแวร์ / การประมวลผล
หวังว่าจะช่วยได้