ចំនួន RAM ដ៏ល្អដែលទូរស័ព្ទត្រូវការសម្រាប់ការធ្វើកិច្ចការច្រើនយ៉ាងរលូនរបស់ពួកគេ គឺជាប្រធានបទពិភាក្សា។ Apple ទទួលបានដោយទំហំតូចជាងនៅក្នុង iPhone របស់ខ្លួន ដែលជារឿយៗអាចប្រើប្រាស់បានច្រើនជាងដំណោះស្រាយ Android ។ អ្នកក៏នឹងមិនរកឃើញប្រភេទនៃការគ្រប់គ្រងអង្គចងចាំ RAM ណាមួយនៅលើទូរស័ព្ទ iPhone ខណៈពេលដែលប្រព័ន្ធប្រតិបត្តិការ Android មានមុខងារផ្ទាល់ខ្លួនសម្រាប់រឿងនេះ។
ប្រសិនបើអ្នកទៅឧទាហរណ៍នៅក្នុងទូរស័ព្ទ Samsung Galaxy ទៅ ណាសវែន -> ការថែទាំឧបករណ៍អ្នកនឹងឃើញសូចនាករ RAM នៅទីនេះជាមួយនឹងព័ត៌មានអំពីទំហំទំនេរ និងចំនួនប៉ុន្មានត្រូវបានកាន់កាប់។ បន្ទាប់ពីចុចលើមឺនុយ អ្នកអាចមើលឃើញថាកម្មវិធីនីមួយៗកំពុងប្រើអង្គចងចាំប៉ុន្មាន ហើយអ្នកក៏មានជម្រើសក្នុងការសម្អាតអង្គចងចាំនៅទីនេះផងដែរ។ មុខងារ RAM Plus ក៏មានទីតាំងនៅទីនេះផងដែរ។ អត្ថន័យរបស់វាគឺថាវានឹងដកចំនួនជាក់លាក់នៃ GB ពីឧបករណ៍ផ្ទុកខាងក្នុង ដែលវានឹងប្រើសម្រាប់អង្គចងចាំនិម្មិត។ តើអ្នកអាចស្រមៃឃើញអ្វីមួយបែបនេះនៅលើ iOS ទេ?
ស្មាតហ្វូនពឹងផ្អែកលើ RAM ។ វាបម្រើឱ្យពួកគេរក្សាទុកប្រព័ន្ធប្រតិបត្តិការ ដើម្បីបើកដំណើរការកម្មវិធី និងរក្សាទុកទិន្នន័យមួយចំនួនរបស់ពួកគេនៅក្នុងឃ្លាំងសម្ងាត់ និងសតិបណ្ដោះអាសន្ន។ ដូច្នេះ RAM ត្រូវតែត្រូវបានរៀបចំ និងគ្រប់គ្រងតាមរបៀបដែលកម្មវិធីអាចដំណើរការយ៉ាងរលូន ទោះបីជាអ្នកទម្លាក់ពួកវាទៅផ្ទៃខាងក្រោយ ហើយបើកវាម្តងទៀតបន្ទាប់ពីមួយរយៈ។
Swift ទល់នឹង. ចាវ៉ា
ប៉ុន្តែនៅពេលចាប់ផ្តើមកម្មវិធីថ្មី អ្នកត្រូវមានទំហំទំនេរនៅក្នុងអង្គចងចាំដើម្បីផ្ទុក និងដំណើរការវា។ ប្រសិនបើនេះមិនមែនជាករណីទេ កន្លែងត្រូវតែទំនេរ។ ដូច្នេះប្រព័ន្ធនឹងបញ្ចប់ដោយបង្ខំនូវដំណើរការដែលកំពុងដំណើរការមួយចំនួន ដូចជាកម្មវិធីដែលបានចាប់ផ្តើមរួចហើយ។ ទោះយ៉ាងណាក៏ដោយ ប្រព័ន្ធទាំងពីរ ពោលគឺ Android និង iOS ដំណើរការខុសគ្នាជាមួយ RAM ។
ប្រព័ន្ធប្រតិបត្តិការ iOS ត្រូវបានសរសេរជា Swift ហើយ iPhones មិនចាំបាច់កែច្នៃអង្គចងចាំដែលបានប្រើរួចពីកម្មវិធីបិទចូលទៅក្នុងប្រព័ន្ធវិញទេ។ នេះគឺដោយសារតែវិធីដែលប្រព័ន្ធប្រតិបត្តិការ iOS ត្រូវបានបង្កើតឡើងដោយសារតែ Apple មានការគ្រប់គ្រងពេញលេញលើវាចាប់តាំងពីវាដំណើរការតែលើ iPhone របស់ខ្លួន។ ផ្ទុយទៅវិញ ប្រព័ន្ធប្រតិបត្តិការ Android ត្រូវបានសរសេរជាភាសាចាវ៉ា ហើយត្រូវបានប្រើប្រាស់នៅលើឧបករណ៍ជាច្រើន ដូច្នេះវាត្រូវតែមានលក្ខណៈជាសកលជាង។ នៅពេលដែលកម្មវិធីត្រូវបានបញ្ចប់ ចន្លោះដែលវាបានយកត្រូវត្រលប់ទៅប្រព័ន្ធប្រតិបត្តិការវិញ។
កូដដើមធៀបនឹង JVM
នៅពេលដែលអ្នកអភិវឌ្ឍន៍សរសេរកម្មវិធី iOS ពួកគេចងក្រងវាដោយផ្ទាល់ទៅក្នុងកូដដែលអាចដំណើរការលើ processor របស់ iPhone ។ កូដនេះត្រូវបានគេហៅថាកូដដើម ព្រោះវាមិនត្រូវការការបកស្រាយ ឬបរិស្ថាននិម្មិតដើម្បីដំណើរការ។ ម្យ៉ាងវិញទៀត Android គឺខុសគ្នា។ នៅពេលដែលកូដ Java ត្រូវបានចងក្រង វាត្រូវបានបំប្លែងទៅជាកូដកម្រិតមធ្យម Java Bytecode ដែលដំណើរការដោយឯករាជ្យ។ ដូច្នេះវាអាចដំណើរការលើ processor ផ្សេងៗគ្នាពីក្រុមហ៊ុនផលិតផ្សេងៗគ្នា។ វាមានអត្ថប្រយោជន៍ដ៏ធំសម្រាប់ភាពឆបគ្នាឆ្លងវេទិកា។
ជាការពិតណាស់ក៏មានគុណវិបត្តិផងដែរ។ ប្រព័ន្ធប្រតិបត្តិការ និងប្រព័ន្ធដំណើរការនីមួយៗ ត្រូវការបរិយាកាសដែលគេស្គាល់ថា Java Virtual Machine (JVM)។ ប៉ុន្តែកូដដើមដំណើរការបានល្អជាងកូដដែលបានប្រតិបត្តិតាមរយៈ JVM ដូច្នេះការប្រើ JVM គ្រាន់តែបង្កើនចំនួន RAM ដែលប្រើដោយកម្មវិធី។ ដូច្នេះកម្មវិធី iOS ប្រើអង្គចងចាំតិចជាង ជាមធ្យម 40% ។ នោះហើយជាមូលហេតុដែល Apple មិនចាំបាច់បំពាក់ទូរស័ព្ទ iPhone របស់ខ្លួនជាមួយនឹង RAM ច្រើនដូចដែលវាធ្វើជាមួយឧបករណ៍ Android ។
ខ្ញុំមិនមែនជាអ្នកជំនាញនោះទេ ប៉ុន្តែខ្ញុំនឹងរៀបរាប់ពីទស្សនៈរបស់ខ្ញុំតាមទស្សនៈរបស់អ្នកប្រើដែលប្រើប្រព័ន្ធប្រតិបត្តិការ Android អស់រយៈពេល 15 ឆ្នាំ ហើយឥឡូវនេះគឺ 2 ខែសម្រាប់ iPhone 13 mini ។ នៅលើប្រព័ន្ធប្រតិបត្តិការ Android ដែលមានអង្គចងចាំ 8GB (ថ្មីៗនេះ Samsung S21, Flip3) ជាធម្មតាខ្ញុំត្រលប់មកវិញបន្ទាប់ពីពេលវេលាជាក់លាក់មួយចំពោះកម្មវិធីដែលបានបើកដំណើរការពីមុន ហើយវានៅតែត្រូវបានផ្ទុកនៅក្នុង RAM ដូច្នេះវាមិនចាប់ផ្តើមម្តងទៀតទេ ហើយខ្ញុំអាចជ្រើសរើសបានយ៉ាងរលូននៅកន្លែងដែលខ្ញុំ បានចាកចេញ។ ម្យ៉ាងវិញទៀត ទោះបីជាមានអង្គចងចាំ 8GB ក៏ដោយ ក៏ខ្ញុំ "បាញ់ទម្លាក់" កម្មវិធីទាំងអស់ម្តងក្នុងមួយសប្តាហ៍ ដើម្បីសម្អាត RAM ព្រោះប្រព័ន្ធចាប់ផ្តើមយឺត ជាមួយនឹងអង្គចងចាំពេញ។ ខ្ញុំមិនមានបញ្ហាជាមួយនឹងការបន្ថយល្បឿននៅលើ iPhone នោះទេ ប៉ុន្តែម្យ៉ាងវិញទៀត ខ្ញុំត្រូវតែនិយាយថា នៅពេលប្រើកម្មវិធីស្ទើរតែដូចគ្នា ផ្ទុយទៅវិញ វាតែងតែកើតឡើងចំពោះខ្ញុំថា នៅពេលដែលខ្ញុំត្រលប់ទៅកម្មវិធីដែលបានបើកពីមុនវិញ វាផ្ទុកឡើងវិញទាំងស្រុង ហើយខ្ញុំមិនអាចបន្តដោយរលូននៅកន្លែងដែលខ្ញុំបានចាកចេញ។
តើជម្រើសមួយណាល្អជាង? ពិបាកនិយាយ… ការសម្លាប់កម្មវិធីនៅលើ Android និងការសម្អាត RAM គឺជាបញ្ហានៃការចុចពីរដង។ ការផ្ទុកកម្មវិធីទាំងមូលម្តងទៀតនៅលើ iPhone គឺមិនចំណាយពេលច្រើនទេ ដូច្នេះវាមិនមានបញ្ហាច្រើននោះទេ... ជាការប្រសើរណាស់ដែលមាន RAM ច្រើននៅលើ iPhone និងការងារច្រើនដូចនៅលើ Android :-D
ឆោតល្ងង់ទៀតហើយ។ សម្រាប់រឿងមួយ ប្រព័ន្ធប្រតិបត្តិការ Android មិនត្រូវបានធ្វើនៅក្នុង Java អស់រយៈពេលជាយូរមកហើយនោះជាអ្វីដែល Kotlin សម្រាប់។ អ្នកប្រមូលសំរាមគឺជាអ្នកទទួលខុសត្រូវលើអង្គចងចាំដែលជាឧបករណ៍សាមញ្ញបំផុតនៅក្នុងប្រព័ន្ធប្រតិបត្តិការ iOS ដែលមានសូម្បីតែគុណវិបត្តិរបស់វា។ រឿងទាំងមូលគឺថា iOS សម្លាប់កម្មវិធីភ្លាមៗនៅពេលអ្នកយកវាចេញពីអេក្រង់។ វាដោះលែងអង្គចងចាំដូចនៅលើ linux នៅពេលអ្នកវាយ kill pid នៃដំណើរការមួយ។ នោះហើយជាមូលហេតុដែលវាត្រូវការពេលយូរដើម្បីបើកកម្មវិធីរុករក ហើយត្រឡប់ទៅការងារមុនវិញ។ អត្ថបទនេះគឺជាការបកប្រែពាក្យសំដីនៃអត្ថបទដែលមានអាយុ X ឆ្នាំដោយអ្នកនិយមប្រើ iOS ដែលមិនមានចំណេះដឹងផ្នែកកម្មវិធី។ បាទ/ចាស៎ ពិតណាស់ ការគ្រប់គ្រងអង្គចងចាំ គឺជាការទទួលខុសត្រូវចម្បងរបស់អ្នកសរសេរកម្មវិធី អ្វីដែលកម្មវិធីធ្វើ។ ប្រសិនបើគាត់ក្អកវាមានការលេចធ្លាយអង្គចងចាំនៅលើពិភពលោកហើយ pqk អ្នកអាចមានអង្គចងចាំ X Gb ហើយវានៅតែគ្មានប្រយោជន៍។ ហើយនៅពេលកម្មវិធីជាច្រើនមានតែ WebView ប៉ុណ្ណោះ នេះគឺសាមញ្ញណាស់ ព្រោះវាស៊ីអ្វីដែលវាអាចធ្វើបាន។ អត្ថបទគឺមិនសមហេតុសមផល, សំរាម។
Android លែងប្រើ jvm ទៀតហើយ ប៉ុន្តែ dvm. ហើយលើសពីនេះទៅទៀត វាចងក្រងវាទៅជា executable ដើម
Java នៅតែស្ថិតក្នុងប្រព័ន្ធប្រតិបត្តិការ Android ។