Kinerja aplikasi Java vs C - Gary menjelaskan

Pengarang: John Stephens
Tanggal Pembuatan: 23 Januari 2021
Tanggal Pembaruan: 1 Juli 2024
Anonim
Performance Tuning Where Java Meets the Hardware
Video: Performance Tuning Where Java Meets the Hardware

Isi


Dimulai dengan skor terburuk, Android 5.0 32-bit, menunjukkan bahwa kode Java berlari 296% lebih lambat dari C, atau dengan kata lain 4 kali lebih lambat. Sekali lagi, ingat bahwa kecepatan absolut tidak penting di sini, melainkan perbedaan dalam waktu yang diperlukan untuk menjalankan kode Java dibandingkan dengan kode C, pada perangkat yang sama. Android 4.4 KitKat 32-bit dengan Dalvik JVM-nya sedikit lebih cepat yaitu 237%. Setelah lompatan dibuat untuk Android 6.0 Marshmallow hal-hal mulai membaik secara dramatis, dengan 64-bit Android 6.0 menghasilkan perbedaan terkecil antara Java dan C.

Tes kedua adalah tes bilangan prima, menggunakan uji coba dengan divisi. Seperti disebutkan di atas kode ini menggunakan 64-bitpanjang bilangan bulat dan karenanya akan mendukung prosesor 64-bit.

Seperti yang diharapkan, hasil terbaik datang dari Android yang berjalan pada prosesor 64-bit. Untuk Android 64-bit 6.0 perbedaan kecepatannya sangat kecil, hanya 3%. Sedangkan untuk Android 5.0 64-bit adalah 38%. Ini menunjukkan peningkatan antara ART di Android 5.0 dan Mengoptimalkan kompiler yang digunakan oleh ART di Android 6.0. Karena Android 7.0 N masih merupakan beta pengembangan, saya belum menunjukkan hasilnya, namun secara umum berkinerja sebaik Android 6.0 M, jika tidak lebih baik. Hasil yang lebih buruk adalah untuk versi Android 32-bit dan anehnya Android 6.0 memberikan hasil terburuk dari grup.


Tes ketiga dan terakhir mengeksekusi fungsi matematika yang berat untuk sejuta iterasi. Fungsi ini melakukan integer aritmatika serta aritmatika floating point.

Dan di sini untuk pertama kalinya kami mendapatkan hasil di mana Java sebenarnya berjalan lebih cepat daripada C! Ada dua penjelasan yang mungkin untuk ini dan keduanya berkaitan dengan optimasi dan Optimizingkompiler dari ARM. Pertama, Optimizing kompiler dapat menghasilkan kode yang lebih optimal untuk AArch64, dengan alokasi register yang lebih baik, dll., daripada kompiler C di Android Studio. Kompiler yang lebih baik selalu berarti kinerja yang lebih baik. Juga mungkin ada jalur melalui kode yang Optimizingkompiler telah menghitung dapat dioptimalkan jauh karena tidak memiliki pengaruh pada hasil akhir, tetapi kompiler C belum melihat optimasi ini. Saya tahu bahwa optimasi semacam ini adalah salah satu fokus besar untuk Optimizingkompiler di Android 6.0. Karena fungsi ini hanyalah penemuan murni di pihak saya, mungkin ada cara untuk mengoptimalkan kode yang menghilangkan beberapa bagian, tetapi saya belum melihatnya.Alasan lainnya adalah bahwa memanggil fungsi ini, bahkan satu juta kali, tidak menyebabkan pengumpul sampah berjalan.


Seperti halnya tes bilangan prima, tes ini menggunakan 64-bitpanjang bilangan bulat, itulah sebabnya skor terbaik berikutnya berasal dari Android 5.0 64-bit. Kemudian hadir Android 6.0 32-bit, diikuti oleh Android 5.0 32-bit, dan akhirnya Android 4.4 bit.

Bungkus

Secara keseluruhan C lebih cepat dari Java, namun kesenjangan antara keduanya telah berkurang secara drastis dengan rilis 64-bit Android 6.0 Marshmallow. Tentu saja di dunia nyata, keputusan untuk menggunakan Java atau C tidak hitam dan putih. Sementara C memiliki beberapa keunggulan, semua UI Android, semua layanan Android, dan semua API Android dirancang untuk dipanggil dari Jawa. C benar-benar hanya dapat digunakan ketika Anda ingin kanvas OpenGL kosong dan Anda ingin menggambar di kanvas itu tanpa menggunakan API Android.

Namun jika aplikasi Anda memiliki beberapa pekerjaan berat yang harus dilakukan, maka bagian-bagian tersebut dapat diangkut ke C dan Anda mungkin melihat peningkatan kecepatan, namun tidak sebanyak yang pernah Anda lihat.

ejumlah aplikai Google Pixel 4 yang diperkirakan akan debut di ponel baru kini teredia untuk diunduh.Jika Anda mengikuti kegilaan kebocoran Pixel 4, Anda mungkin telah melihat banyak perkembangan baru...

Jika Anda menyukai aya, Anda telah menggunakan Google Play Muic elama beberapa tahun untuk menjadi tuan rumah perputakaan muik bear Anda. Tidak eperti banyak orang, aya tidak tertarik dengan layanan t...

Direkomendasikan Untukmu