Java vs C uygulaması performansı - Gary açıklar

Yazar: John Stephens
Yaratılış Tarihi: 23 Ocak Ayı 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
Java vs C uygulaması performansı - Gary açıklar - Uygulamaların
Java vs C uygulaması performansı - Gary açıklar - Uygulamaların

İçerik


En kötü skorla başlayan 32 bit Android 5.0, Java kodunun C'den% 296, diğer bir deyişle 4 kat daha yavaş çalıştığını gösteriyor. Yine, mutlak hızın burada önemli olmadığını, fakat aynı cihazın C koduna kıyasla Java kodunu çalıştırma zamanındaki farkın önemli olduğunu unutmayın. 32-bit Android 4.4 KitKat, Dalvik JVM ile% 237'de biraz daha hızlı. Android 6.0'a atladıktan sonra Marshmallow işleri çarpıcı bir şekilde gelişmeye başlar, 64 bit Android 6.0 ile Java ve C arasındaki en küçük farkı verir.

İkinci test, bölmeyle yapılan denemeyi kullanan asal sayı testidir. Yukarıda belirtildiği gibi, bu kod 64 bit kullanıruzun tamsayılar ve bu nedenle 64 bit işlemcileri tercih eder.

Beklendiği gibi, en iyi sonuçlar 64 bit işlemcilerde çalışan Android'den geliyor. 64 bit Android 6.0 için hız farkı çok az, sadece% 3. 64 bit Android 5.0 için ise% 38'dir. Bu Android 5.0 ve ART arasındaki gelişmeleri göstermektedir optimize Android 6.0'da ART tarafından kullanılan derleyici. Android 7.0 N hala bir geliştirme beta sürümü olduğundan, sonuçları göstermedim, ancak daha iyi olmasa da, genellikle Android 6.0 M ile de çalışıyor. En kötü sonuçlar, Android'in 32-bit sürümleri içindir ve garip bir şekilde 32-bit Android 6.0, grubun en kötü sonuçlarını verir.


Üçüncü ve son test, bir milyon yineleme için ağır bir matematiksel işlev yürütür. İşlev, kayan nokta aritmetiğinin yanında tamsayı aritmetiği yapar.

Ve burada ilk defa, Java'nın gerçekten C'den daha hızlı çalıştığı bir sonuç elde ettik! Bunun iki olası açıklaması var ve her ikisi de optimizasyon ve O ile ilgili.ptimizingARM'dan derleyici. İlk olarak, Optimizing derleyici, Android Studio'daki C derleyicisinden daha iyi bir kayıt tahsisi vb. ile AArch64 için en uygun kodu üretmiş olabilir. Daha iyi bir derleyici her zaman daha iyi performans anlamına gelir. Ayrıca, O’nun kodunu kullanarak bir yol olabilir.ptimizingderleyici hesaplandı çünkü nihai sonuç üzerinde hiçbir etkisi olmadı, ancak C derleyici bu optimizasyonu belirlemedi. Bu tür bir optimizasyonun O'nun en büyük odak noktalarından biri olduğunu biliyorum.ptimizingAndroid 6.0'daki derleyici. İşlev sadece benim açımdan saf bir icat olduğu için, bazı bölümleri gözardı eden kodu optimize etmenin bir yolu olabilir, ancak ben bunu fark etmedim.Diğer bir sebep de, bu işlevi bir milyon kez bile çağırmak, çöp toplayıcının çalışmasına neden olmaz.


Asal testte olduğu gibi, bu test 64 bit kullanıruzun tamsayılar, bu yüzden bir sonraki en iyi skor 64-bit Android 5.0'dan geliyor. Sonra 32 bit Android 6.0, ardından 32 bit Android 5.0 ve son olarak 32 bit Android 4.4 geliyor.

Sarmak

Genel C, Java'dan daha hızlıdır, ancak ikisi arasındaki boşluk 64-bit Android 6.0 Marshmallow'un piyasaya sürülmesiyle büyük ölçüde azaltılmıştır. Elbette gerçek dünyada, Java veya C'yi kullanma kararı siyah beyaz değildir. C bazı avantajlara sahip olsa da, tüm Android UI, tüm Android servisleri ve tüm Android API'leri Java'dan çağrılmak üzere tasarlanmıştır. C yalnızca boş bir OpenGL tuvali istediğinizde ve herhangi bir Android API kullanmadan bu tuval üzerine çizim yapmak istediğinizde kullanılabilir.

Ancak, uygulamanızın yapması gereken ağır bir kaldırma varsa, o zaman bu parçalar C'ye taşınabilir ve bir zamanlar görebileceğiniz kadar olmasa da hızda bir gelişme görebilirsiniz.

amung, Unpacked etkinliğinde adece dört yeni akıllı telefon (ve Galaxy Fold) duyurmadı - tamamladıüç yeni giyilebilir ürünler: amung Galaxy Watch Aktif, amung Galaxy Fit ve am...

40mm bekçi kulübei (adece bir beden)1,1 inç AMOLED ekran (360 x 360 pikel)20mm ilikon aat kayışı (iki boyut dahil)iyah, gümüş, gül altın, yeşil...

Bakmak