Kiasi bora cha RAM ambacho simu zinahitaji kwa kazi zao nyingi laini ni mada inayojadiliwa. Apple hupita na saizi ndogo katika iPhones zake, ambayo mara nyingi hutumika zaidi kuliko suluhisho za Android. Pia hautapata aina yoyote ya usimamizi wa kumbukumbu ya RAM kwenye iPhone, wakati Android ina kazi yake ya kujitolea kwa hili.
Ukienda, kwa mfano, katika simu za Samsung Galaxy Mipangilio -> Utunzaji wa kifaa, utapata kiashiria cha RAM hapa na habari juu ya kiasi gani cha nafasi ni bure na ni kiasi gani kinachukuliwa. Baada ya kubofya menyu, unaweza kuona ni kumbukumbu ngapi kila programu inachukua, na pia una chaguo la kufuta kumbukumbu hapa. Kazi ya RAM Plus pia iko hapa. Maana yake ni kwamba itauma idadi fulani ya GB kutoka kwa hifadhi ya ndani, ambayo itatumia kwa kumbukumbu ya kawaida. Je, unaweza kufikiria kitu kama hiki kwenye iOS?
Simu mahiri zinategemea RAM. Inawahudumia kuhifadhi mfumo wa uendeshaji, kuzindua programu na pia kuhifadhi baadhi ya data zao kwenye kache na kumbukumbu ya bafa. Kwa hivyo, RAM lazima ipangwa na kusimamiwa kwa njia ambayo programu zinaweza kufanya kazi vizuri, hata ikiwa utaziacha nyuma na kuzifungua tena baada ya muda.
Mwepesi dhidi ya Java
Lakini wakati wa kuanza programu mpya, unahitaji kuwa na nafasi ya bure kwenye kumbukumbu ili kupakia na kuiendesha. Ikiwa sio hivyo, mahali lazima iondolewe. Kwa hivyo mfumo utasitisha kwa nguvu baadhi ya michakato inayoendeshwa, kama vile programu ambazo tayari zimeanza. Walakini, mifumo yote miwili, i.e. Android na iOS, hufanya kazi tofauti na RAM.
Mfumo wa uendeshaji wa iOS umeandikwa kwa Swift, na iPhones hazihitaji kusaga kumbukumbu iliyotumika kutoka kwa programu zilizofungwa kurudi kwenye mfumo. Hii ni kwa sababu ya jinsi iOS inavyoundwa, kwa sababu Apple ina udhibiti kamili juu yake kwani inaendesha tu kwenye iPhones zake. Kinyume chake, Android imeandikwa katika Java na inatumika kwenye vifaa vingi, hivyo ni lazima iwe zaidi kwa wote. Wakati programu imekatishwa, nafasi iliyochukuliwa inarudishwa kwenye mfumo wa uendeshaji.
Msimbo wa asili dhidi ya JVM
Msanidi programu anapoandika programu ya iOS, huikusanya moja kwa moja katika msimbo unaoweza kuendeshwa kwenye kichakataji cha iPhone. Msimbo huu unaitwa msimbo asilia kwa sababu hauhitaji tafsiri au mazingira pepe ili kuendeshwa. Android, kwa upande mwingine, ni tofauti. Msimbo wa Java unapoundwa, hubadilishwa kuwa msimbo wa kati wa Java Bytecode, ambao haujitegemei kwa processor. Kwa hiyo inaweza kukimbia kwenye wasindikaji tofauti kutoka kwa wazalishaji tofauti. Hii ina faida kubwa kwa utangamano wa jukwaa la msalaba.
Bila shaka, pia kuna upande wa chini. Kila mfumo wa uendeshaji na mseto wa kichakataji unahitaji mazingira yanayojulikana kama Java Virtual Machine (JVM). Lakini nambari ya asili hufanya vizuri zaidi kuliko nambari iliyotekelezwa kupitia JVM, kwa hivyo kutumia JVM huongeza tu kiwango cha RAM kinachotumiwa na programu. Kwa hivyo programu za iOS hutumia kumbukumbu kidogo, kwa wastani 40%. Ndio maana pia Apple sio lazima kuweka iPhones zake na RAM nyingi kama inavyofanya na vifaa vya Android.
Mimi si mtaalam haswa, lakini nitaelezea mtazamo wangu kutoka kwa mtazamo wa mtumiaji ambaye ametumia android kwa miaka 15 na sasa ana miezi 2 kwenye iPhone 13 mini. Kwenye android iliyo na kumbukumbu ya 8GB (hivi majuzi Samsung S21, Flip3) kawaida nilirudi baada ya muda fulani kwa programu iliyozinduliwa hapo awali na ilikuwa bado imepakiwa kwenye RAM, kwa hivyo haikuanza tena na ningeweza kuchukua mahali nilipo. kushoto mbali. Kwa upande mwingine, hata kwa kumbukumbu ya 8GB, "nilipiga" maombi yote mara moja kwa wiki ili kufuta RAM, kwa sababu mfumo ulianza kupungua kwa kumbukumbu kamili. Sina shida na kupunguza kasi ya iPhone, lakini kwa upande mwingine, ni lazima niseme kwamba wakati wa kutumia maombi karibu sawa, kinyume chake, mara kwa mara hutokea kwangu kwamba ninaporudi kwenye programu iliyozinduliwa hapo awali, inapakia tena kabisa na siwezi kuendelea vizuri pale nilipoishia.
Chaguo gani ni bora? Ni vigumu kusema… Kuua programu kwenye android na kufuta RAM ni suala la kubofya mara mbili. Kupakia programu nzima tena kwenye iPhone hakuchukui muda mwingi, kwa hivyo haijalishi sana... Bila shaka, itakuwa bora kuwa na RAM zaidi kwenye iPhone na kufanya kazi nyingi kama kwenye Android :-D
Shit, ni mjinga tena. Kwa jambo moja, Android haijafanywa kwa Java kwa muda mrefu, ndivyo Kotlin inavyofaa. Mtozaji wa takataka ndiye anayesimamia kumbukumbu, ambayo ni rahisi zaidi katika iOS, ambayo ipo hata na hasara zake. Jambo zima ni kwamba iOS inaua programu mara tu unapoziondoa kwenye skrini. Hii inaachilia kumbukumbu kama vile kwenye linux unapoandika kill pid ya mchakato. Ndiyo sababu inachukua muda mrefu kufungua kivinjari na kurudi kwenye kazi ya awali. Makala haya ni tafsiri ya neno moja ya makala ya zamani ya mwaka wa X na shabiki wa iOS asiye na maarifa ya utayarishaji. Ndiyo, bila shaka, usimamizi wa kumbukumbu ni hasa wajibu wa programu, nini maombi hufanya. Akikohoa juu yake, kuna uvujaji wa kumbukumbu duniani na pqk unaweza kuwa na X Gb ya kumbukumbu na bado haina maana. Na wakati ambapo maombi mengi ni WebView tu, hii ni rahisi sana, kwa sababu yenyewe inakula kile kinachoweza. Nakala hiyo ni upuuzi, takataka.
Android haitumii tena jvm, lakini dvm. Na kwa kuongeza, basi inaikusanya kuwa inayoweza kutekelezwa ya asili
Java bado iko kwenye Android.