ประสิทธิภาพของแอป Java vs C - Gary อธิบาย

ผู้เขียน: John Stephens
วันที่สร้าง: 23 มกราคม 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
Java vs C app performance – Gary explains
วิดีโอ: Java vs C app performance – Gary explains

เนื้อหา


เริ่มต้นด้วยคะแนนที่แย่ที่สุด Android 5.0 32 บิตแสดงว่าโค้ด Java ทำงานช้ากว่า C 296% หรือในคำอื่น ๆ ช้าลง 4 เท่า โปรดจำไว้ว่าความเร็วสัมบูรณ์ไม่สำคัญที่นี่ แต่ความแตกต่างของเวลาในการเรียกใช้รหัส Java เมื่อเทียบกับรหัส C บนอุปกรณ์เดียวกัน Android 4.4 KitKat 32 บิตพร้อม Dalvik JVM นั้นเร็วขึ้นเล็กน้อยที่ 237% เมื่อการกระโดดข้ามไปสู่สิ่งต่างๆใน Android 6.0 Marshmallow เริ่มดีขึ้นอย่างมากด้วย Android 6.0 64 บิตที่ให้ความแตกต่างน้อยที่สุดระหว่าง Java และ C

การทดสอบที่สองคือการทดสอบหมายเลขเฉพาะโดยใช้การทดลองตามหมวด ตามที่ระบุไว้ข้างต้นรหัสนี้ใช้ 64 บิตยาว จำนวนเต็มและจะสนับสนุนโปรเซสเซอร์ 64 บิต

ผลลัพธ์ที่ดีที่สุดนั้นมาจาก Android ที่ทำงานบนโปรเซสเซอร์ 64 บิต สำหรับ Android 6.0 แบบ 64 บิตความแตกต่างด้านความเร็วนั้นเล็กมากเพียง 3% ในขณะที่ Android 5.0 แบบ 64 บิตนั้นเป็น 38% สิ่งนี้แสดงให้เห็นถึงการปรับปรุงระหว่าง ART บน Android 5.0 และ การเพิ่มประสิทธิภาพ คอมไพเลอร์ที่ใช้โดย ART ใน Android 6.0 เนื่องจาก Android 7.0 N ยังคงเป็นรุ่นเบต้าสำหรับการพัฒนาดังนั้นฉันจึงไม่ได้แสดงผลลัพธ์ แต่โดยทั่วไปแล้วจะมีประสิทธิภาพเช่นเดียวกับ Android 6.0 M หากไม่ดีขึ้น ผลลัพธ์ที่แย่กว่านั้นสำหรับ Android รุ่น 32 บิตและ Android 6.0 32 บิตที่แปลกประหลาดให้ผลลัพธ์ที่แย่ที่สุดของกลุ่ม


การทดสอบที่สามและครั้งสุดท้ายดำเนินการฟังก์ชันทางคณิตศาสตร์อย่างหนักสำหรับการทำซ้ำหลายล้านครั้ง ฟังก์ชันทำเลขคณิตเลขจำนวนเต็มรวมทั้งเลขคณิตจุดลอยตัว

และนี่เป็นครั้งแรกที่เราได้ผลลัพธ์ที่ Java ทำงานได้เร็วกว่า C จริง ๆ มีคำอธิบายที่เป็นไปได้สองประการสำหรับสิ่งนี้และทั้งสองเกี่ยวข้องกับการปรับให้เหมาะสมและ Optimizingรวบรวมจาก ARM อย่างแรกคือ Optimizing คอมไพเลอร์สามารถสร้างโค้ดที่ดีที่สุดสำหรับ AArch64 ด้วยการจัดสรรการลงทะเบียนที่ดีขึ้น ฯลฯ กว่าคอมไพเลอร์ C ใน Android Studio คอมไพเลอร์ที่ดีกว่าหมายถึงประสิทธิภาพที่ดีขึ้นเสมอ นอกจากนี้ยังอาจมีเส้นทางผ่านรหัสที่ Optimizingคอมไพเลอร์ได้คำนวณแล้วสามารถปรับให้เหมาะสมเนื่องจากไม่มีผลต่อผลลัพธ์สุดท้าย แต่คอมไพเลอร์ C ไม่ได้เห็นการเพิ่มประสิทธิภาพนี้ ฉันรู้ว่าการเพิ่มประสิทธิภาพแบบนี้เป็นหนึ่งในจุดสนใจหลักของ Optimizingคอมไพเลอร์ใน Android 6.0 เนื่องจากฟังก์ชั่นนี้เป็นเพียงการประดิษฐ์อย่างบริสุทธิ์ในส่วนของฉันอาจมีวิธีการปรับโค้ดที่ไม่ใช้บางส่วน แต่ฉันก็ไม่ได้เห็นมันเหตุผลอื่นคือการเรียกใช้ฟังก์ชั่นนี้แม้แต่หนึ่งล้านครั้งจะไม่ทำให้ตัวรวบรวมข้อมูลขยะทำงาน


เช่นเดียวกับการทดสอบเฉพาะการทดสอบนี้ใช้ 64 บิตยาว จำนวนเต็มซึ่งเป็นสาเหตุที่ทำให้คะแนนที่ดีที่สุดถัดไปมาจาก 64-bit Android 5.0 จากนั้นมาพร้อม Android 32- บิต 6.0 แล้วตามด้วย Android 32 บิต 32 บิตและสุดท้ายเป็น Android 4.4 32 บิต

สรุป

โดยรวม C นั้นเร็วกว่า Java แต่ช่องว่างระหว่างทั้งสองได้ลดลงอย่างมากเมื่อมีการเปิดตัว Android 6.0 Marshmallow 64 บิต แน่นอนในโลกแห่งความเป็นจริงการตัดสินใจใช้ Java หรือ C ไม่ใช่ขาวดำ ในขณะที่ C มีข้อได้เปรียบบางอย่าง, Android UI ทั้งหมด, บริการ Android ทั้งหมดและ Android API ทั้งหมดได้รับการออกแบบให้เรียกจาก Java C สามารถใช้งานได้จริงเมื่อคุณต้องการผ้าใบ OpenGL เปล่าเท่านั้นและคุณต้องการวาดบนผืนผ้าใบนั้นโดยไม่ต้องใช้ Android API ใด ๆ

อย่างไรก็ตามหากแอปของคุณมีการยกที่ต้องทำอย่างหนักชิ้นส่วนเหล่านั้นอาจถูกย้ายไปยัง C และคุณอาจเห็นการปรับปรุงความเร็ว แต่ไม่มากเท่าที่คุณเคยเห็น

Hype สำหรับความเป็นจริงเสมือนได้ตายลงอย่างแน่นอนในช่วงสองสามปีที่ผ่านมาเนื่องจากการรวมกันของฮาร์ดแวร์ราคาแพงประสิทธิภาพพอดูและอาการเมารถและการขาดเนื้อหาของผู้ใช้ ขณะนี้อุตสาหกรรมกำลังติดอยู่ในสถานการณ...

Xiaomi ประกาศ Mi Festival 2019

Randy Alexander

กรกฎาคม 2024

Xiaomi ก่อนหน้านี้เปิดตัว Mi Fan Fetival 2019 เป็นกิจกรรมที่มุ่งเน้นลูกค้าซึ่งมีให้สำหรับผู้ที่อาศัยอยู่ในอินเดียเท่านั้นข้อสังเกตคือส่วนลดสำหรับผลิตภัณฑ์ Xiaomi รวมถึงสมาร์ทโฟนลำโพงสาย UB และอื่น ๆ ไ...

เป็นที่นิยมในสถานที่