Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Neden Android ve iOS'u birakip Windows Phone'a geciyorum


xetraynex

Öne çıkan mesajlar

aktiftablet said:

Abi herkes programlama gurusu, os tasarımında dünyanın kabul ettiği birer otoriteymiş gibi androidin bellek kullanımını eleştiriyor ya, hasta oluyorum.

Belleğin boş durmasının sana ne faydası var? Alet yeni uygulama çalıştıracak kadar bir miktar belleği boş tutuyor sadece, geri kalanları boşaltmıyor ki, uygulamayı tekrar çalıştırdığında falan daha hızlı geçiş yap diye?

İlk çıktığından beri nexus 4 kullanıyorum, 1,5 seneye yaklaşıyor sanırım. root moot, custom rom vs olayına hiç girmedim. bu süre içinde telefonu fabrika ayarlarına vs döndürmedim, facebook vs gibi arkaplanda çalışan uygulamaları da kapatma gereği duymadım (evet, kapatılabiliyorlar, istersen arkaplanda çalışmasını kapatabildiğin gibi, arka planda çalışsın ama arka planda internet kullanmadan çalışsın deme seçeneğin de var) Ram doluymuş, bana ne? Uygulamalarım anında açılıyor, task manager çok hızlı geçiş yapıyor, ben buna bakarım.


guzel arkadasim okumadin galiba onceki sayfalari. neyse, yine acikliyim ama once bana gelip Operating Systems ile ilgili konusma. Ben Silberschatz'in Operating Systems Concepts kitabini 2 kere bitirmis birisiyim.

OS'lar bos bellegi cache icin kullanir, least used memory yeni bir app geldiginde ona verilir.

Nasil? Whatsapp actiniz, viber actiniz, messenger actiniz, memory bitti, facebook actiniz, Whatsap'in memorysini facebooka vercek android ama once Whatsapp'i memory'den storage'a yaziyor. Cunku app'i actiginizda son kaldigi yerden devam ediyor (state-save). Storage da essek gibi yavas bir olay, memorye gore binlerce kat yavas.

Kisaca, bos bellek bosa harcanan bellektir sozu Androidde calismiyor. iOS'ta daha iyi calisiyor.

Nexus 4 kullaniyorum demissin bunu zaten belirttik Android birtek Nexus'ta duzgun calisiyor. Nexus 4'un zaten 2gb rami var. 1gb ramli bir telefon al, Whatsapp, Viber, Facebook, Tango, FB Messenger, vs vs. app yukle telefon kasim kasim oluyor. Denedik gorduk, uydurmuyoz.

Sen arka planda calisan uygulamalarin kapatildigini dusunuyorsun, ama alakasi yok. Benim telefon rootlu, kac kere baktim kapanmiyor. Facebook 60+mb, Messenger 50+mb kendisi aliyor zaten. 30mb civari Whatsapp. Autoruns da kullandim, kullanirsan trigger eventleri kapatabiliyorsun ama o zaman uygulama duzgun calismiyor. Greenify kullandim, notificationlarda kesinlikle patliyor. Satin alip kullandim hem de ikisini de.

Arka planda calistirmama ozelligini gorunce "aaa kapatilabiliyooomuuuusss" demenin anlami yok. O lafta oyle.

Windows Phone'da nasil? Adamlar bir notification gonderiyo, live tile'i on-the-fly update ediyor push notification hic app'ler calismadan. Applerin calismasi o kadar kisitli ki eger bir app 4 saat boyunca kullanici tarafindan acilmazsa arka planda calisamiyor. App'ler yarim saatte bir 20 sn'lik calismaya subscribe olabiliyor, onda da 14 gun boyunca app acilmazsa iptal oluyor.

Bilmeden konusmayin bikere. Bise biliyosaniz, sizden daha iyi bilen var.

@roket sen de oku.
Link to comment
Sosyal ağlarda paylaş

bingildak said:

aktiftablet adam bilgisiyle dövmüş hala çocukca alay edecem diye kasıyorsun asdasd


said:
Bilmeden konusmayin bikere. Bise biliyosaniz, sizden daha iyi bilen var.


evet özellikle şu cümlede yumruğu suratımda hisstettim, adam en iyi bilen, ne cevap veriyim ki, google'a çağırımı yineliyorum burdan
Link to comment
Sosyal ağlarda paylaş

hatta fragmentation sorunu var. sizin memoryniz su olsun, "a" free space olsun.

++++++++++++++++++__a__+++++++++++++

Siz facebook app'i actiniz, memory'de yer yok. OS bir uygulamanin allocate ettigi memory'yi hemen free eder.

++++++++++++++++++__a__++++__b__++++

Ama belki a+b facebook icin continuous olarak yeterli degil. Bu durumda fragmentation va ver diger alanlardan b'nin veya a'nin yanindaki alanlardan birisi diger bos alana tasinip free space continuous yapilir. Bu da extra islem + beklemek demek, kasilmak demek.

++++++++++++++++++__a____b__++++++++

Aslen page frame'leri kucuktur, ama Android Java oldugundan zaten en basit app'i calistirdiginizdan en az 10mb yiyor. Dolayisi ile page frameleri hantal.

iOS objective-C, yani C++ gibi cok low level oldugundan fragmentationdan daha az etkileniyor. Managed heap'i yok.

http://en.wikipedia.org/wiki/Paging
http://en.wikipedia.org/wiki/Page_table
http://en.wikipedia.org/wiki/Page_replacement_algorithm

edit: kaynaklar
Link to comment
Sosyal ağlarda paylaş

@xet

Verdigin ornekler hardware bakimindan bukadar fragmented bir platform icin pek gecerli ornekler degil.

Kalkip memory allocation ornegi vermissin ve bu ornegin icinde soyle bir cumle gecmekte:

"Aslen page frame'leri kucuktur, ama Android Java oldugundan zaten en basit app'i calistirdiginizdan en az 10mb yiyor. Dolayisi ile page frameleri hantal."

Bir app'in allocate ettigi memory miktari direkt onun hantal oldugu argumanini yaratmiyor.

Bir app'in memory'i nasil kullandigi developerin feature secimlerine ve seperation of concerns e dayali bir durumdur.
Guideline:
Android memory management guideline

Bu senin Android'e bok attigin noktalarin cogunlugu bir secim sonucu ortaya cikmis olaylar, bknz androidde olan ve ios'un arkadan geldigi featurelar:
+ queue management
+ cache management
+ generic session handling

For example: bir uygulama tasarladin, backend ile iletisimde kullanicidan data alip yolluyor, ayni zamanda facebook ile login ozelligi var.
Kullanicin login oldu appde takiliyor falan, bir noktada yaptigi bir hareket sonucunda backend api'na req. atip data yollayacak. bu gerceklesmeden saniyeler once kullanicinin internet baglantisi koptu.Android burda sana secenek sunuyor, eger dilersen kullaniciya 'BILADER BAGLANTIN PATLAK' demek yerine bu yollanicak datayi memorye alip baglantiyi tekrar sagladigi anda arka planda yolluyor(queue management).
Misal bu ios;da su anda bulunmamakta. WP platformunu bilemiyorum bos konusmayayim.

Ama dedigim gibi bunlar ustunde bulundugun platformun developer'a sagladigi esneklik ve featurelar dolayisiyla yaptigi tradeofflar.
AGA SU APP KURDUGUN ANDA RAMDE 10MB YER KAPLIYOR degil olay.
Link to comment
Sosyal ağlarda paylaş

@RaidenXelRu

secim sonucu ortaya cikmis olmasi justify etmiyor. Seni sectim pokemon olunca dogru secim olmuyor. Bu durumu daha da icler acisi yapiyor, cunku birilerinin secimi yuzunden telefonlar kasim kasim.

verdigim ornekler sadece memory fragmentation ile ilgilidir. hardware'lik bir durum yok. android'i desktop pc'ye yuklesen 1gb memory koysan ayni sey ortaya cikar. diverse hardwarelarin olmasini nasil bu olayla bagdastirdin anlamadim.

App'in allocate ettigi memory miktari onu hantal yapar, iff eger memory'in az ise. Bu app'i yavas calistiriyor. 2gb+ memory var ise hantallik yok. O da seneye az gelmeye baslar 3gb ramliler gelmeye basladi. Kocaman hatal denilen Windows ucak kaliyo Android'in yaninda.

Separation of Concern bir software architecture prensibidir. Bu end-result'i ciddi oranda degistirmez, cunku Java managed bir dildir. Sen asla memoryde objelerin nasil tutulacagina direk karisamazsin. Objeleri free de yapamazsin. Istedigin kadar separate et veya etme.

Sen verdigin linki tam okumamissin galiba. Ben okuyacaktim ama baktim zaten bildigim seyler. Bak ctrl+f yaptim sana hemen quote yapyim:

said:
If it's appropriate for your app, an advanced technique that may help you manage your app's memory is dividing components of your app into multiple processes. This technique must always be used carefully and most apps should not run multiple processes, as it can easily increase—rather than decrease—your RAM footprint if done incorrectly. It is primarily useful to apps that may run significant work in the background as well as the foreground and can manage those operations separately.


Processleri ayirmak memory management'i kolaylastirir, kullanilmayan processler daha rahatca sonlandirilir. Ama bu sefer de quote ettigim yer diyor ki memory kullaniminizi arttirirsiniz. Android yukari tukursen biyik asagi sakal yani.

Simdi senin hatan nerede. Separation of Concerns, yani mumkun oldugunda logic'i process'lere veya tasklere extract etmek memory kullanimini arttirir. Cunku Java'da zaten bos bir app'i calistirirsan bile deli gibi overhead var. Her process icin kafadan overhead var, bu da managed heap'ten ve her objenin sizin kullanmadiginiz extra propertylerinden kaynaklaniyor. Processlere ayirmazsan da fragmentation olma, arkasindan surekli paging yapma ve free-space allocate edememe sorunlasi basliyor.

Evet developerlara kolaylik sagliyor o dogru. Feature olarak degil ama, programming olarak. Sen feature'a baglamissin.
Link to comment
Sosyal ağlarda paylaş

  • Genel Yönetici
Formattan sonra hersey geri yuklendi bu arada. Hesaplardan, sifrelere ve sms'lere kadar. Programlar ve ayarlari da yuklu. Sadece authenticator tekrar ayar istiyor.

Bir de uyari. COK ONEMLI UYARI!!!!

Telefon kapatip acildiginda bazen dokunmatik olarak cevap vermeyebiliyor, soft reset atin, pili cikartmayin benim yaptigim. Orada bir buga takilmisim ben.
Link to comment
Sosyal ağlarda paylaş

1 yıl oldu telefonu alalı şu yazılanlar o kadar boş geliyor ki bana. Zerre yavaşlama yok ilk günki hızla kullanıyorum, yok arka planda ne çalışıyor bilmem ne canavar gibi alet canavar gibi işletim sistemi.
Android kullanıyorum diye diğer işletim sistemlerini kötülemek gibi bi hastalığımda yok, insanlar neden takım tutar gibi işletim sistemi tutuyor çözemedim.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...