Android telefonlarda neden bilgisayarlardan daha fazla çekirdek var?


80

Dizüstü bilgisayarlar genellikle en fazla dört çekirdeğe sahiptir ve çift çekirdeği muhtemelen daha yaygındır. Son zamanlarda quadcore'dan dualcore'a geçtim ve quadcore için CPU yoğun görevlerde bile sınırlı sayıda kullanım olduğunu doğrulayabilirim.

Öte yandan, cep telefonlarında, quadcores, hexacores ve octacores ortak gözüküyor. Neden? Hangi görevler bunları kullanabilir?

Anlıyorum ki büyük. LITTLE cevabın bir parçası olabilir. Yani, pek çok çekirdeğin asıl yararı, hepsini aynı anda kullanma yeteneği değil, mevcut iş yüküne uygun güç tüketimi olan bir çekirdek kullanmaktır. Bununla birlikte, örneğin, Snapdragon 625, büyük bir durum gibi görünmeyen sekiz adet Cortex-A53 çekirdeğine sahiptir.

Belki ARM mimarisi, watt başına daha düşük bir optimum performans noktasına sahiptir. Başka bir deyişle, watt başına optimum performans için ayarlanmış tek bir çekirdeğe sahip olmak, ARM'de Intel'den daha düşük performansla sonuçlanır. Dolayısıyla, performansı sağlamak için daha fazla çekirdek kullanılır. Bu sadece bir hipotez.

Ancak bu durumda bile, iş yükünün bir cep telefonunda sekiz çekirdeği verimli bir şekilde kullanabileceğini görmüyorum. Dizüstü bilgisayarlarda, bir projenin bir kaç tam (artımlı olmayan) derlemesini hayal edebiliyorum. Ama telefonlarda?

  • Oyunlar performansa aç olabilir, ancak genellikle CPU yerine GPU performansı gerektiriyor, değil mi?
  • Teorik olarak, birden fazla çekirdek Android Lollipop / Marshmallow AOT derlemesini yüklerken veya yükseltirken hızlandırabilir (örn. “Uygulamaları optimize etme 3/121” aşaması). Bununla birlikte, bunun birden fazla çekirdek kullanıp kullanamayacağından emin değilim. Kodu hatırladığım kadarıyla, bir kerede yalnızca bir uygulama derleniyor, ancak derleme sürecinin içinde bazı paralellikler olabilir.
  • Ayrıca Android 7+, derlerken birden fazla çekirdek kullanabilir. Ancak boşta ve şarj ederken derlediği bildirildiği için, fayda oldukça az görünüyor. En azından biri gece boyunca telefonu şarj ettiğinde - böyle bir senaryoda 30 dakika veya iki saat sürmesi umrumda değil.

Cevabımda belirttiğim gibi, baş aşağı bakıyor gibi göründüğünü unutmayın. Pek çok çekirdek / paralel yürütme norm, pek çok çekirdeğe sahip olmak için bir anomali olan telefonunuz değil, bir anomali olan PC CPU'su.
motoDrizzt

4
Sorunuz hatalı, bilgisayarların telefonlardan çok çekirdeği olabilir. intel.com/content/www/us/tr/products/processors/core/x-series/… Ve bu onlarca hatta yüzlerce çekirdeğe sahip olabilecek sunucu sınıfı makinelere bile girmiyor. (Bazı süper bilgisayarlar binlerce çekirdeğe giriyor.)
JAB

3
@JAB Tabii, ama normal sayıdan ziyade maksimum çekirdek sayısından bahsetmiyorum. Dizüstü bilgisayarlar için, quadcore'lerden fazlası oldukça nadirdir, ancak belki de Xeon ile bir istisna bulabilirsiniz. Cep telefonları için octacores bile nispeten yaygın gibi görünüyor.
v6ak

4
"Son zamanlarda quadcore'dan dualcore'a geçtim ve quadcore için CPU yoğun görevlerde bile sınırlı sayıda kullanım olduğunu doğrulayabilirim." - Bu sonuca nasıl ulaştığınızı genişletip detaylandırabilir misiniz?
Abdul

@Abdul En çok gözlemlerimden (htop veya benzeri bir araç kullanarak sistem yükünü görmek) ve kısmen sonuçlarımdan geliyor. Paralelleşmeyi beklediğim bazı görevler bile (örneğin, OpenScad'i kullanarak oluşturma) tek çekirdeklidir. Firefox (ESR) genellikle en fazla bir çekirdeği tüketir. Artımlı derleme - Ölçmedim, ancak sezgisel olarak, bağımsız görevler bulmak için fazla fırsat yok. (Tam derleme farklı bir durumdur.)
v6ak

Yanıtlar:


63

Daha önce belirttiğiniz gibi , big.LITTLE kombinasyon stratejisi (teknik olarak, HMP , Heterogeneous Multi-Processing kümeleri) çok sayıda (ve bazen çok fazla sayıda) çekirdeğin ana nedenidir. Bir mobil cihaz, çoğu zaman hem ağır yük hem de hafif yük dahil olmak üzere birçok senaryo halinde yayınlanır.

Tüketici sınıfı için aşırı bir örnek, MediaTek'in 2 performans odaklı A72 çekirdeği, 4 dengeli A53 çekirdeği ve 4 enerji tasarruflu A35 çekirdeği olan Helio X20'dir. Farklı kullanım durumları boyunca çok esnektir. Ancak, 8 çekirdek 2 kümenin genellikle yeterli olduğunu düşünüyorum .

Qualcomm'un Snapdragon 800 serisi (S 800, S 801 ve S 805) gibi başka bir masaüstü benzeri örnek daha var. Her SoC'da aynı 4 mimarinin yalnızca 4 çekirdeği vardır, bunlar 2 saat daha yüksek ve 2 saat daha düşüktür. Qualcomm bu SoC'ları kendi mikro mimarilerine çok güvendikleri için yaptı (Krait 400 ve Krait 450).

Oyunlar için CPU yerine GPU performansı gerektirse bile, yine de CPU'ya ağır bir yük yüklüyorlar. Bir GPU, işlenecek verileri sağlayan başka bir şey olmadan tek başına çalışamaz ve oyun oynarken CPU'nun yaptığı en büyük işlerden biridir. Çoğu oyun vakasında, GPU sadece grafikler verirken, veri, kaynak ve varlık yüklemek ve sistem, çevre ve fizik gibi oyun içi mekaniği hesaplamak gibi diğer tüm işler CPU tarafından yapılır. GPU'nuzu düşük kaliteli bir CPU'ya yapıştırırken yükseltirseniz daha yüksek bir kare hızı gözlemlemezsiniz.

İkinci bir neden, Android'in CPU kaynaklarını nasıl kullandığıdır . Android hemen hemen kendi uygulama ortamını yaratır. Java'dan kodlar (ve API'ler) dışında hiçbir şey kullanmaz, ancak daha sonra ART (API Seviye 21) ile değiştirilen Dalvik adlı kendi sanal makinesine sahiptir. APK'lerin çalıştırılabilir kodları .class, Java'daki dosyalar gibi, "nötr" bir biçimdedir . Çalıştırılmadan önce, kodlar bir kez daha makinenin yerel talimatlarında derlenir [1] . Derleme işlemi çok iş parçacıklıdır ve performans artışı için çok sayıda çekirdek kullanabilir.
Bir uygulama çalışırken, uygulamanın yanında veya paralel olarak çalışan birkaç başka işlem ve mekanik (Çöp Toplayıcı gibi) vardır. Daha fazla çekirdek, ana uygulamanın yanı sıra destekleyici işlemlerin daha verimli çalışmasına izin verebilir.
1. Bir dosya tipi tanımlayıcısı kullanırsanız, "optimize edilmiş" dex dosyalarının ELF biçiminde olduğunu, "nötr" dex dosyalarının ise yalnızca kendi biçiminde olduğunu görürsünüz.

Daha az bir diğer neden ise ARM çekirdeklerinin Intel x86 yongası kadar hızlı çalışamamasıdır . Intel x86 mikro mimarisi, Intel 8086 yongasının tasarlanmaya başlandığı 1976 yılına dayanıyor, bu da x86'nın uzun süredir geliştiği anlamına geliyor. Tek bir modern high-end ARM Cortex-A73 çekirdeği, yalnızca Intel i5-660'ı örnek alan bir Intel Clarkdale çekirdeği çekirdeği kadar güçlüdür (GeekBench, tek çekirdekli). Bunun nedeni, x86'nın bir CISC mikro mimarisi, ARM ise bir RISC'dir.mikro mimarisi. Kesinlikle sadece iki ya da bu kadar aktif uygulamalar ile gülünç bir telefon istemiyorum. Daha fazla çekirdek, basıncı azaltmaya yardımcı olacaktır. Bu yüzden çift çekirdekli SoC'lar sadece akıllı saatlerde oldukça popülerdir. Akıllı bir saatte kimin performansa ihtiyacı var?

İlginçtir ki, daha fazla çekirdek aynı yükte tek bir çekirdekten daha az güçle sonuçlanacaktır . CPU frekansı ve güç tüketimi arasındaki ilişki doğrusaldan daha fazladır, bu yüzden iki kez frekans her zaman iki kattan fazla, hatta 3x veya 4x kadar güç talep ederken, iki kat daha az performans sağlarken (önbellek gibi diğer kaynak sınırlamaları nedeniyle) ). Böylece 4 çekirdek aynı yükte tek bir çekirdeği kolayca geçebilir, daha iyi performans sağlar ve aynı anda daha az güç gerektirir.

Daha fazla okuma:


1
Linux çekirdeğinin yıllar önce süper bilgisayarlara odaklanarak iyi bir çok çekirdekli destek üzerinde çalıştığını okuduğumu ya da izlediğimi hatırlıyorum ve bu çabalar "gelecekte" (şimdi) akıllı telefonlar için "yararlı" oldu. kaza "
Marc.2377

3
Bu cevap, kabul edilmesine rağmen, aslında soruyu yanıtlıyor gibi görünmüyor. Bu cevabı yanıtlıyor gibi görünüyor "Neden telefonumda fazladan çekirdek isteyebilirim?" eldeki soru bu değil. PC ile Telefon arasındaki farkı açıklamıyor. Bir telefonun neden daha fazla çekirdek isteyebileceği ile ilgili verilen noktalar masaüstü bilgisayarlara, özellikle de oyunla ilgili hususlara da uygulanır.
Aaron,

8
X86 işlemcileri hakkındaki 1976 iddiası biraz yanıltıcıdır. ARM çekirdeği, 1983 yılında, sadece 7 yıl sonra Acorn RISC Makine projesine geri dönebilir ve bazı yönlerden daha yeni olmak bir avantajdır, Acorn, x86 ve benzer CPU tasarımlarının geliştirilmesinde yanlış olan birkaç şey öğrendi ve bunları içine aldı. KOL.
user1937198

2
Ayrıca RISC ve CISC'nin bununla hiçbir ilgisi yok, Intel CPU'ları dahili olarak bir RISCish çekirdeği çalıştırıyor (uops). Asıl fark, siparişin icabında vs emri var.
user1937198

5
X86 olayı oldukça ... yanlış. Süper sipslerdir, temel uygulamalar çoğu ARM yongasında kullanılan klasik RISC boru hattına yakın hiçbir yerde yapmaz. Ayrıca, sıra dışı yürütme ve önbellek hiyerarşisi nedeniyle çekirdeklerin süper skaler tasarımlarla birbirine bağlanmasının çok zor olduğunu belirtmek gerekir. Kimse ne kaçırdıklarını bilmiyordu, bu yüzden gerçekten talep yoktu. Intels'in bazı yeni yinelemelerinin yüksek çekirdek sayısı yongalarında olmadığını fark ederseniz - bunlar Broadwell'dedir, çünkü bunun nedeni senk alanlarını boşa harcamış olmalarıdır.
Alec Teal

15

Sebep, karmaşık olduğu kadar basittir.

Kısa cevap, "çünkü cep telefonu pazarı hiç Intel tarafından yönlendirilmedi ve yönlendirilmedi".

Uzun cevap, burada devam etmek için çok uzun, ancak temel kavram, Intel’in bilgisayar pazarında CPU’nun olması için para ödeyip bozmak (ve bunun için para cezası vermek) için yıllarca mümkün olan tüm yollarla hükmettiğidir. PC üreticileri için ilk ve tek seçenek.

Pazarın tüm kontrolüne sahip olmak, kullanıcıların hangi özellikleri ve ne kadar işlem gücü istemesi gerektiğine yapay olarak karar verirken Intel'in CPU fiyatlarını şişirmesine izin verdi ve biraz Intel geçmişini analiz ederseniz temel gücünün temelde olduğunu göreceksiniz. CPU frekansının artması, çoğu zaman gerçekten akıllı ya da yenilikçi bir şey yapmaya çalışmadı; ve buna ihtiyacı yoktu, çünkü insanlara “daha ​​fazla çekirdeğe ihtiyacınız yok, ama 100 MHz daha hızlı çalışan bu yeni sulu işlemcilere sahibim” diyebiliyordu. Aynı zamanda, sunucu pazarında çok çekirdekli işlemcileri son derece yüksek fiyatlarla satabilir (çünkü sunucular her zaman ihtiyaç duymuştur)Paralel güç tonlarca, kullanan sunucuları gerçekleştirmeye çalışırken mevcut bir eğilim olduğu noktaya kadar ... ne oldu? Paralel çalışan ucuz telefonunuzun yüzlerce CPU'su)

Bu da, paralel programlamanın önemini hiç bulamayan geliştiricilerin topluluğuna yansımıştır, bu nedenle çoğu zaman zaman birden fazla iş parçacığı kullanmaktan zahmet etmediyse teknik bir şekilde, yazılımlarını bir kerede birden fazla işi yapmak. Bu arada, müşteri tabanınızın% 99'unun maksimumda iki çekirdeği olduğu zaman bir anlam ifade eder. Ne yazık ki, bu paralel algoritmaların uygulanmasının gerçekten zor olduğu ve sadece küçük bir problem grubuna uygulanacağı efsanesine yol açmıştır.

Bunun yerine, nihayet, mobil pazar hiç Intel başarısını görmedi; Aksine, aslında, çoğu zaman olduğu gibi, Intel olağan X86 mimarisinden farklı bir şeyler yapmaya çalışır. Bu nedenle, eksiklik pazarın etkisi ve kontrolüdür, diğer CPU üreticileri PC piyasası dışındaki yaş için normal olan yöne gitti: paralel hesaplama.


12
Doğru soruyu cevapladığınızdan emin misiniz ?
iBug

7
@Bug Bu cevap OP'nin sorusu için kabul edilen cevaptan daha iyi. Kabul edilen cevap, doğru soruyu cevaplamayan cevaptır.
Aaron,

6
"CPU fiyatlarını yapay olarak şişirmek" -> Intel fiyatları yapay olarak şişiriyorsa, rekabet neden benzer fiyatlı donanım kullanıyor ve ARM destekli bilgisayarların neden Intel donanımıyla karşılaştırıldığında bu kadar zor emdikleri? Bu akıllı nefret saçma. İşlemci yapmak zor . ARM'i mobil cihazlar arasında bu kadar popüler yapan şey, Intel'den önce geliştirdikleri büyük fikir. LITTLE fikriydi.
T. Sar

6
Intel, PC yonga pazarını kontrol etmiyor ve yıllarca kontrol etmiyor. Çip tasarımcılarının daha hızlı saatlerden daha fazla çekirdeğe kaymasının nedeni, daha hızlı saatlerin bazı temel fiziksel sınırlamalara çarpmasıydı. Daha fazla çekirdek çözülmesi daha zor bir problemdi, bu yüzden performansı arttırmanın en uygun maliyetli yolu olana kadar kapattılar.
Kevin Krumwiede

6
ARM, bağımsız çip üreticilerini de lisanslı olarak vidaladığı için IMO'nun hak etmediği şeytani Intel şirketi hakkında daha fazla rant.
Dmitry Grigoryev

9

Biri pratik ve diğeri tarihsel olan iki faktör var.

Pratik sebep, telefonlarda karma mimarilerin kullanılmasıdır. Güç tüketimi telefonlar için çok önemlidir ve telefonlar çok az performans gerektiren modlarda çok fazla zaman harcarlar. Gerektiğinde maksimum performans sağlamak için optimize edilmiş bazı çekirdeğe sahipken, az performans gerektiğinde bazı çekirdeklerin minimum güç tüketimi için optimize edilmiş olması mantıklıdır.

Diğer sebep ise büyük ölçüde tarihseldir. 2005 yılına kadar, masaüstü işlemcilerin tümü tek çekirdekliydi. Masaüstü CPU performansını iyileştirmek, neredeyse sadece saniyede olabildiğince çok komut çalıştırabilen bir çekirdeğin oluşturulmasından ibaretti. Bugün bile, bu kadar çok masaüstü yazılımı, birçok çekirdeğin% 20 daha yavaş çekirdekli bir 8 çekirdekli işlemciden 4 çekirdekli bir CPU'yu tercih edebileceği çoklu çekirdekten tam olarak yararlanamıyor.

Tek bir çekirdekten mümkün olduğunca fazla performans elde etmek için büyük miktarda CPU mülkü gerekir. Bu, daha fazla çekirdek sağlamak için kullanılabilecek bir gayrimenkul. İşte bu yüzden Intel'in en yeni Kaby Lake işlemcileri 4 çekirdekte maksimuma çıkıyor ve insanlar bunları satın alıyor çünkü her çekirdek öncekilerin çekirdeğinden daha hızlı. Birçokları için, çekirdek sayısının daha yüksek olduğu işlemcilerden bile bir yükseltmedir.

Zamanla, daha fazla çekirdek desteklemek için tamamen optimize edilmiş çok daha fazla masaüstü yazılımı görmeyi bekleyin. Bu gerçekleştiğinde, mühendislik değişimleri masaüstlerinde daha hızlı çekirdekler üzerinde daha fazla çekirdek lehine başlayacak. Çekirdekler neredeyse kesinlikle daha da hızlı olacak olsa da, her bir çekirdek% 20 daha yavaş olsa bile, insanların 4 çekirdekli işlemciden 8 çekirdekli işlemci tercih ettiğini görmeye başlayacaksınız. Çip tasarımcıları pazarı takip edecek.


5

Bir telefonun kısa patlamalarda hesaplama gücü sağlayabilmesi çok önemlidir (bazı uygulamaların hızlı olması gerekir) ancak aşırı ısınmadan da kaçınmak (ısı dağılımı telefon veya dizüstü bilgisayardan çok daha zordur). Bunu başarmak için, mimarlar iş yükü hafifken tek bir çekirdeği kullanmak için telefonlar tasarlar ve gerektiğinde performansı artırmak için ekstra çekirdekler sağlar. Telefonların daha az sayıda büyük çekirdek kullanması durumunda, iş yükü oldukça hafif olsa bile aşırı ısınma sorun olabilir.

Kaynak: Yüksek lisans düzeyinde bir bilgisayar mimarlık kursu.


Gerçeği söylemek gerekirse, kısa süre içinde hesaplama gücü ( enerji ile kastettiğiniz buysa) sağlama yeteneği, masaüstü için de çok önemlidir. Bu yüzden Intel çiplerinde TurboBoost var.
Dmitry Grigoryev,

Evet, hesaplama gücü demek istediğim şeydi. Doğru, belirli bir zamanda (telefon ve masaüstü bilgisayarlar da dahil) bir iş yükünün yüklenmesini bekleyebilecek tüm cihazların bu sorunu çözebilmesi gerekir. En büyük fark, ısı dağılımıdır.
Tara Eicher

Söylediklerinize katılıyorum, sadece iş yükünün telefonlara özgü olmadığını belirtmek istedim.
Dmitry Grigoryev

2

İlk olarak, Java sanal makinesi tarihsel olarak, tipik masaüstü yazılımlarından çok çekirdekten faydalanabilir. Java'da tek iş parçacıklı bir uygulama yazsanız bile, çok çekirdekli bir bilgisayarda daha hızlı çalışır, çünkü çöp toplayıcı kodların çoğu uygulamanızla birlikte çalışır.

İkincisi, telefonunuzdaki arka planda pek çok şey oluyor: otomatik güncellemeler, reklam indirmeleri, virüsten koruma yazılımı, GSM modülünün yönetimi, vb. Bir dizüstü bilgisayarda, tüm bu görevler bir çekirdeği meşgul eder ancak ARM çekirdeği çok daha az güçlü, bu nedenle, eğer yanıt veren bir sistem istiyorsanız, en az birkaç arka plan görevine sahip olmak isteyebilirsiniz.

Sonunda pazarlama var. Pek çok kullanıcı 8 çekirdekten faydalanıp faydalanmayacağını değerlendirebilir, ancak 8 çekirdekli bir akıllı telefon kesinlikle 2 veya 4 çekirdekten daha pahalı geliyor.


2
"ARM çekirdeği çok daha az güçlü" hattı boyunca ifadeleri görmeye devam ediyorum - bu tam olarak ne anlama geliyor? Daha az saat hızı var mı?
Abdul

2
@Bir saniyede daha az işlem. x86 yongaları aynı anda birkaç işlemi gerçekleştirebiliyor, böylece aynı saat hızında bile ARM'den daha iyi performans gösteriyorlar. Check out bu karşılaştırmayı : (GT-I9100) üst x86 çip (i7-2920XM) yaklaşık 10 kat daha yavaştır üst ARM çipini.
Dmitry Grigoryev

FLOPS ile "saniye başına işlemler" eşanlamlı mı?
Abdul

@Abdul Mutlaka değil. Aslında, oyun ve fizik simülasyonlarının yanı sıra, kayan nokta o kadar da kullanılmıyor. Ayrıca, birçok ARM yongası hassasiyeti kısarak iyi FLOPS'lar elde eder, bu yüzden gerçek ölçüm de değildir.
Dmitry Grigoryev

Android uygulamaları, Java sanal makinesinde çalışmaz. Dalvik
VM'de çalışıyorlar

1

Şimdiye kadar verilen cevaplar, Android telefonlarda ezici bir şekilde bu kadar çok sayıda CPU çekirdeğine yol açan problemin bazı yönlerini açıklamaktadır. Bunu tekrar oku; Android telefonlar İPhone, birkaç yıldır sadece birkaç çekirdeğe takılmayı başardı ve hala Android amiral gemilerinden daha yumuşak bir performans sergiliyor.

Android tasarımcıları Java programlamasını seçmeye karar verirken büyük bir kumar oynadılar ve bunun sonucunda da uygulamaların çalışma zamanı olarak JVM'yi seçtiler. Java, tasarım ilkeleri nedeniyle, performanstan ödün vermeden önce her CPU mimarisi için kod derleme ve oluşturma ihtiyacını çözer. Java, genellikle JVM olarak adlandırılan ağır ve hacimli bir sanal makine sunar. JVM, her aygıt için ayrı olarak kod derleme ihtiyacını önlemek için aslında bir CPU'yu yazılım düzeyinde taklit eder. JVM'yi, çalışan cihaza bakılmaksızın aynı özelliklere sahip sanal bir CPU olarak düşünün, böylece kodun JVM için yalnızca bir kez derlenmesi gerekir ve daha sonra her cihaza çalıştırılabilir. Bu, üreticilerin uygulama uyumluluğu konusunda endişelenmeye ihtiyaç duymadan önce istedikleri donanımı atmalarını sağlar.

JVM'nin kendisi sadece bir spesifikasyondur ve insanlar bu spesifikasyona uyduğu sürece kendi JVM'lerini geliştirmekte özgürdürler. Orijinal android JVM Dalvik olarak adlandırıldı. Bugünlerde Google bunu ART ile değiştirdi.

Şimdi JVM'nin sorunu ne? Çok fazla bilgi işlem kaynağı tüketen ağır bir yazılımdır. Buna ek olarak, Java Dilinin Çöp Toplama ve JVM'nin kaynak tüketimi gibi diğer bazı özelliklerini de mütevazı donanım gücüne sahip bir cihaz için çok fazla olur. Cihazınızda açık olan her uygulama ve sistem servisi, ART JVM'nin bir örneğidir ve şimdiye kadar hepsini yönetmenin gerçekten yetenekli bir donanım gerektirdiği sonucuna varabilirsiniz. Kullanıcı arayüzleri çizme ihtiyacı olduğunda işler daha da kötüye gidecek.

Her uygulama birkaç iş parçacığı üzerinde çalışır. Her bir CPU çekirdeği bir seferde yalnızca bir iş parçacığı çalıştırabilir. Her uygulama, kullanıcı arayüzü ile ilgili işleri yapan bir ana iş parçacığına sahiptir. Dosya erişimi, ağ, vb. Yapmak için uygulama başına çok daha fazla iş parçacığı olabilir. Genellikle CPU çekirdeği olduğundan daha açık uygulamalar (ve sistem hizmetleri) vardır ve bunun sonucunda genellikle CPU çekirdeğinden çok daha fazla iş parçacığı vardır. Bu nedenle, her bir çekirdek sürekli olarak farklı dişler işlemek, her birinin birazını yapmak ve bir sonrakine geçmek arasında geçiş yapmak zorundadır. Bu anahtarlama CPU için çok zaman alır ve uygulamaların esasen JVM olması durumunda, bu görev daha da ayrıntılı hale gelir.

Bu açıklamaya dayanarak, androidin sorunsuz çalışması için güçlü bir donanıma ihtiyaç duyduğu tespit edilebilir. Android cihazların ilk nesilleri, gecikme, çarpma ve diğer birçok talihsiz şeyle ünlüydü. Ancak yıllar geçtikçe bu sorunlar çoğunlukla güçlü donanıma dayanarak çözüldü.

Öte yandan, iOS uygulaması yerel makine koduna göre derlenir ve bu nedenle sanallaştırmaya gerek yoktur. Kullanılan dil ve işletim sistemi de daha verimlidir ve bu nedenle bu cihazların bazı overkill yonga setlerine ihtiyaç duyulmadan pürüzsüz kalmasını sağlar.


Bu, cep telefonlarının neden masaüstü bilgisayarlardan daha güçlü olduğunu gösteren güzel bir açıklamadır. Yoksa değil mi?
maaartinus

“Bu, üreticilerin uygulama uyumluluğu konusunda endişelenmeye ihtiyaç duymadan önce istedikleri donanımları atmalarına izin veriyor.” - iyi nokta, ancak bunun kameralar için tasarlanan bir sistemin (orijinal olarak) niyetinde olup olmadığından emin değilim.
v6ak

“Dosya erişimi, ağ, vb. Yapmak için uygulama başına daha fazla iş parçacığı olabilir” - bunlar daha çok CPU tüketmeyen I / O bağlı. Bazen, G / Ç yalnızca bir iş parçacığı tarafından işlenir, çünkü CPU G / Ç aygıtlarından çok daha hızlıdır.
v6ak

“Android cihazların ilk nesilleri, gecikme, çökme ve diğer birçok talihsiz olaylarla ünlüydü” - Marshmallow'u bu tür telefonlarda çalıştırdığımı hatırlıyorum (Xperia Mini Pro) ve CPU'dan daha yavaş olmanın birçok nedeni olduğunu düşünüyorum. Düşük RAM ile çalıştılar MTD gibi daha yavaş flaş aygıtlarına sahiplerdi (bazı işlemler için microSD kartlarından çok daha yavaş), eski Androidlerde daha az verimli bir “JVM” (teknik olarak bir JVM olmayan) vardı. Tabii ki, daha iyi CPU da yardımcı oluyor, ancak böyle bir sonuçtan çok uzak olurdum.
v6ak

Ayrıca, UI iş parçacığında G / Ç (veya diğer uzun işlemler) gerçekleştirme gibi programlama stili, CPU performansına bakılmaksızın uygulamaları geciktirebilir. AFAIK, bu tarz erken Android uygulamalarında oldukça yaygındır. Bu tür uygulamalar, modern telefonlarda bile gecikebilir. Muhtemelen daha az gecikmeli olacaklar, ancak bu daha hızlı işlemcilere veya daha fazla çekirdeğe göre daha hızlı flash belleklerden kaynaklanıyor.
v6ak

0

Her şeyden önce devam ederken, PC ve telefon kullanım durumlarının oldukça farklı olduğunu söyleyebilirim. PC'lerde çoğu kez tek veya birkaç uygulamada (tabii ki çok sayıda cpu çekirdeği olan tarayıcı çok sayıda cpu çekirdeği gerektirir, hatta i-3'te bile kalabilir), çoklu görevlerde kullanılan telefonlar. En azından ağ bağlantısı, kullanıcı arayüzü çizme, sistem tetiklemeleri, bildirimler. PC'de görev yöneticisi açarsanız, birçok işlem de vardır, ancak eski Core 2 ikilisinde bile cpu gücünün% azından daha azını kullanırlar. 4 çekirdek oldukça ucuzdur (MTK 65x2 OEM için başlangıçta 1 $ 'dır) Ayrıca, çekirdek başına son performans eksikliği olduğunda RISK vs CISC'dir. Enerji verimli! = Güçlü, burada gördüğümüz gibi . Çok çekirdekli mobil cihazlar için mükemmeldir, çünkü ciddi ağır tek sırt yükü yoktur ve çok görevli hedef deneyimi vardır (ancak, iyi bir yazılım nedeniyle iPhone'ların daha az çekirdeğe ve RAM'e ihtiyacı olduğunu görebiliriz.bu videodaki gibi veya başkaları )


Bunun çoğu dizüstü bilgisayarda da sıklıkla yapılmaktadır. Ve çok görevli işlemci gerektiren olmak zorunda değildir. Üretim maliyetlerindeki fark bazı farklılıklara neden olabilir ve düşük uçlu CPU'lar için daha az sayıda çekirdek için bir neden olabilir, ancak tüm i7'lerin en az dört çekirdeğe sahip olmamalarının tek nedeni imalat maliyetlerinin olduğundan şüpheliyim. Üretim maliyetlerinin bu işlemcilerin fiyatlarının sadece küçük bir kısmı olduğuna inanıyorum.
v6ak

@ v6ak, sorun şu ki, x86 çekirdeği daha büyük ve daha karmaşık, intell (veya amd) 'den gelen CPU'lar sadece üst model olmak için yeterince iyi değil. Aslında, birçoğu bazı bölümleri tıkadı ve junior i7 veya Pentium'lar oldu. ARM çekirdeği daha az zor görünüyor, bu yüzden her yıl pek fazla model gelmiyor. Hala gerçek okta çekirdeği Samsung Exynos Octa 7xxx oldu , MTK Helio X10 , En Son (X30) bile küçük (4) .Middle (4) .BIG (2) 'yı önerdi, reklamlarda 10 çekirdekli işlemci, ucuz pazarlama olduğunu söyleyebiliriz. bir şey yapar.
Flippy

-1

Bence 4 veya 8'in ötesindeki ana itici faktörlerden biri (büyük: küçük konfigürasyonlar için) şu anda sadece pazarlama.

Yüksek çekirdek sayısının büyük bir sorunu, belleğin boyutunu düşündüğünüz zamandır. Normalde masaüstü uygulamalarında birden fazla çekirdeğin kullanımını geliştirmek istediğinizde, yapıları çoğaltmanız ve tek bir iş parçacıklı uygulamada çok daha fazla bellek kullanmanız gerekir.

Bu gerçekleşmez, çünkü RAM çok pahalıdır (özellikle 2017/2018 RAM kriz durumunda). Pazarlama yüksek rakamlar istiyor ancak kontrol etmek bileşen fiyatlarını düşürmek istiyor. Çekirdek başına 1 Gigabayt RAM'den daha az bir denge görürseniz, başarısız bir uzlaşma görürsünüz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.