iOS uygulamaları Android uygulamalarından daha hızlı mıdır?
<p>Android uygulamaları derlenerek değil yorumlanarak çalıştırıldığı için iOS uygulamarına göre daha yavaştırlar diye duydum. Doğru mudur?</p>
06.12.2014 tarihinde
Bu soruya toplam 1 cevap verilmiştir
<p>Java, Android’de yorumlanmaz. Android uygulamaları programcılar tarafından bytecode’a derlenirler. Bytecode programın sıkıştırılmış bir sunumudur. Programcı tarafından yazılan kaynak kodundan(Source code) daha küçüktür, ancak yine de CPU tarafından direkt olarak çalıştırılabilir halde değildir. Bazı iyileştirmeler, dead code’un kaldırılması gibi, bu aşamada yapılabilir. <br />
Uygulamayı bir cihaza yüklediğinizde, Dalvik JVM bytecode’u Her an çalışabilecek şekilde derler. Buna “tam zamanında” (just in time) derleme denir. Bu program derlemeyi beklediğinde, bariz bir yavaşlamaya neden oluyor, ancak bundan sonra bir performans yükü olmuyor, çünkü kod temel seviyede, çalıştırılabilir koda çevrilmiş oluyor. Bunu geliştiricinin bilgisayarında açık bir şekilde yapmaktan ziyade bu şekilde yapmanın performans yönünden bazı avantajları var. Uygulama telefonda belli bir CPU için derlenmiş olabilir, donanım(hardware) özelliklerini ve performans özelliklerini kullanarak bu avantajı kullanır. Örneğin, eğer ki CPU bunu destekliyorsa, yazılım ondalık işlemleri(floating-point operations) için kullanabilir. Ek olarak, iyi bir JIT derleyicisi(kabul etmek gerekir ki Dalvik o kadar da iyi değil), programın çalıştığı şekli görüntüleyebilir ve programın gerçek kullanım şekline bağlı olarak iyileştirmeler yapabilir. Bir kez sizin ortamınızda, yani cihazınızda hangi seçeneklerin açılıp kapatıldığını gördüğünde, daha iyi bir şekilde hedefe ulaşarak kodu yeniden derleyebilir. İyi bir derleyici bu bilgiye kullanması için sahip değil. <br />
Dalvik, JIT derlemesinin hatalarını azaltmak için Dalvik cache ve diğer teknikleri kullanıyor. Android L ve sonrası için yeni bir JVM olan ART zamanının ötesinde bir derleyici olarak JIT’in yerini tamamen ele geçirmiştir. ART bir uygulama yüklenir yüklenmez bytecode’u yerel yürütülebilir koda derleyerek JIT’ın uygulama yüklerken sebep olduğu gecikme probleminden kurtarırken diğer tüm avantajlarını da sağlamaya devam eder. Şunu unutmayın ki, Android tam olarak Java içermiyor. Geliştiriciler, uygulamanın tümünü ya da bir kısmını C ya da C++’da yazmak için, uygulamanın performansı kritik kısımları için, özellikle de oyunlar için NDK’yı kullanıyorlar. OpenGL ve RenderScript gibi özel amaçlı ara yüzler programcıların GPU ve SIMD ek işlemcisi gibi özel yazılımların, bir çeşit hesaplama için avantajlarını kullanmalarına izin veriyorlar. <br />
Yani aslında, sorunuza verilebilecek basit bir cevap yok. En iyi olan derlemeyi kullanmak yerine JIT’yi kullanmak bazı şeyleri daha hızlı hale getirirken, bazı şeyleri daha yavaş hale getiriyor. Bu tüm OS performansının sadece bir kısmı. </p>
25.01.2015 tarihinde
Soru bir şekilde bizi yanlış yönlendiriyor. “standart” bir Android uygulaması Java’da yazılıp, bytecode’da derlenirken, “Temel seviyede” İOS uygulaması Objective-C(ya da Swift) ile yazılıyor ve derleniyor. Ancak yine de, örneğin, PhoneGap/Cordova gibi HTML&JavaScript kullanarak iki platformda da uygulama yazılması mümkün. Bir HTML uygulaması genellikle aynı platformda basit bir uygulamadan daha yavaş çalışması için ayarlanmıştır. Yani, eğer ki aynı uygulama “diğer” platformda daha yavaş çalışıyor gibi görünüyorsa, belki de bu o farklı bir teknoloji ile üretildiği içindir.
- 25.01.2015 tarihinde
Burak Sözümçetin
yorumladı
129 kez görüntülendi
son hareket 25.01.2015 tarihinde
son hareket 25.01.2015 tarihinde