açılın size ram meselesini açıklıyorum ki şu iki rakamı karşılaştırıp büyük olanını buldu diye kendisini teknoloji gurusu sananlar gibi olmayın:
iphone'u mahalledeki kasap gibi düşünün.
işlemci: kasabın kendisi
dosyaların durduğu disk: arka odadaki soğutmalı donduruculu depo
ram: tezgah
bir app'i açtığınızda yaptığınız şey depodan eti alıp kasabın önündeki tezgaha koymak.
tezgah ne kadar büyükse kasap o kadar büyük et parçasını işleyebilir. diğer seçenek de çok sayıda farklı farklı ama daha ufak boy etleri tezgahta tutup canı istediğinde işlemesi ve depoya gidip gelmesine gerek kalmadan bunu hızlıca yapabilmesi.
aslında en hızlı olay ne olurdu? depodaki tüm etleri kasabın önüne yığ ve adam istediği zaman işlesin. öyle app açma app kapama olayı olmasın.
peki bu mümkün mü? hayır değil çünkü o kadar büyük tezgah dükkana sığmaz sığsa dahi çok fazla elektrik harcar(sonuçta tezgahı da soğutmak lazım yoksa etler bozulacak).
apple burada kural getirmiş, önce gitmiş kasabın en iyisini işe almış ve adamın önüne 1m'lik tezgah koymuş. yani kasabın işleyebileceği en büyük et parçası 1 metre boyunda. problem olmaması için de aldığı app'leri amaan etleri en iyisinden alıyor. appstore(et-store
*)'a saçma sapan app'ler kabul etmiyor, app dediğin haddini bilecek ve bu miktar ram'e göre çalışacak. bunun için de java'dan farklı teknolojiler kullanıyor ve genel olarak küçük tezgahta işlemeye müsait 1.ci kalite etler giriyor dükkana sadece. yani andoid'te app'ler kemikli sakatatlı postlu etler olduğu için daha büyük tezgah istiyor ama ios'ta etler lop et. en iyisinden, o yüzden o 1 metre boyundaki tezgahtan çıkan et hem çok lezzetli hem de en az 3-4 metrelik tezgaha sahip dükkanlardaki kadar çabuk hazırlanılıyor.
burada sorun nerede başlıyor? siz mesela gittiniz
apple altın satır aile kasabı'na ve dediniz ki bana 2 kilo pirzola hazırla.
kasap pirzolalık eti depodan çıkarıp tezgaha koyuyor ve hazırlıyor. sonra diyorsunuz ki ben biraz da kuzu kıyması istiyorum. kasap gidiyor depodaki kuzu etini alıp tezgaha koyuyor ve kıymanızı hazırlıyor. sonra diyorsunuz ki ya ben bir de hindi füme istiyorum. hop kasap hindiyi getiriyor ama o da ne? tezgahta yer kalmamış. bunun için ilk çıkardığı eti depoya geri koyuyor ve yerine hindiyi koyuyor.
eğer siz şimdi derseniz ki ben fikrimi değiştirdim pirzola 2 kilo değil de 3 kilo olsun o zaman kasap az önce depoya kaldırdığı pirzolalık eti geri getirmesi gerekiyor yani app'in yeniden açılması gerekiyor.
göreceğiniz üzere ne tezgah ne kadar büyükse depoya et getir götür işlemleri o kadar az olur. apple bunu minimize etmek için akıllı teknolojiler falan kullanıyor. mesela sizin huyunuzu öğreniyor , biliyor ki pirzolayı önce 2 kilo isteyeceksiniz sonra 3 kilo diyeceksınız(huyunuz bu amk) o zaman size 3 kilo pirzola vermeden eti depoya kaldırmamaya dikkat ediyor falan filan.
android kasaplar zinciri ise farklı bir strateji izlemiş. yapmış tezgahı 3 metre. önüne leş etler geldikçe ben bunu seneye 5 metre tezgah ile değiştiririm diyor. e bu kadar büyük tezgah olunca da bunun soğutması pahalıya geliyor ve mecbur telefonun içine 3800mah'lik pil koyuyorlar.
sonra işin içine başka meseleler de giriyor. mesela apple kasabı her konuda çok çok iyi ama android kasapları genelde bir konuda iyi oluyor , başka konuda sıçıyor. ne bileyim örneğin apple kasabı alman gibi çalışıyor , mesaisini verimli kullanıyor. android'in kasapları ise illa bi sigara molası verecek falan. sorsan çok çalışıyor ama verimsiz çalışıyor işte.
yani genşler mesele bu. apple diyor ki ben kasap dükkanımı az ama öz yaparım. bu da aslında safari dışında başka bir yerde pek sorun yaratmıyor. safarinin meselesi de şu: web sayfaları hayvan gibi fotoğraf ve script yüklüyor ve siz 3-4 tane tab açtığınıda ram'in hepsini kullanmış oluyorsunuz ve 5.ci tab açtığınızda eski tab'lardan kapamak gerekiyor. tezgaha sığmıyor yani. apple da diyor şimdi sırf bunun için tezgahın boyutunu arttırsam belki 4-5 tab fazla açılacak ama yine kapatmak gerekecek. bunun sonu yok , o yüden en iyisi böyle kalsın.
desktop'ta neden eski tab'ları kapatmak gerekmiyor peki? bunun sebebi de şu ki desktop'ta
swap var. bu swap'ı tezgahın bir kısmını depo'ya doğru ittirildiğini düşünün. tezgahın üstünde yer kalmayınca eski tab'lar depoya iteleniyor ama tamamen raflara kaldırılmıyor. siz onlara erişmek istediğinizde de bilgisayarınız bir süreliğine kasılıyor. mobil'de bu kasılma kabul edlemez olacağı için swap yok.
şimdi ios 9 ile birlikte
content blocking geliyor. content blocking de muhtemelen sayfaların ram kullanımını azaltabilecektir adblockerlar çıktıkça.
edit: bir tane haklı itiraz var o da daha fazlar ram'in daha fazla pil kullanımına sebep olmayacağı. bu doğru, android'te pil kullanımı başka sebeplerle fazla olabiliyor - buna kısaca kalitesiz etler diyelim.
ios'ta swap, yani backing store kullanılmaması de muhtemelen performans dışında bununla alakalı. ram dolduğunda bunu disk'e yazmak çok fazla pil tüketimine sebep olur ve üstelik flash diskin ömrünü erkenden bitirmesine neden olabilir. onun yerine ram dolunca işletim sistemi app'e uyarı verir ve app hafızayı gönüllü olarak boşaltması istenir(tezgah taştı taşacak) ve os x veya windows veya ne bileyim linux'tan farklı olarak eğer tezgah taşarsa o uygulama kapatılır. bu sebeple de safari "tezgah dolmak üzere" uyarısı aldığında arka plandaki tabları kapatır ve hafızayı yeni app'lere, tezgahı yeni etlere bırakır.