Mengapa baterai iPhone lebih baik untuk TIDAK menutup aplikasi?

51

Saya tahu ternyata itu bukan ide yang baik untuk menutup aplikasi di iPhone Anda untuk menghemat baterai. Saya telah membaca pertanyaan dan jawaban seperti Apakah paksa menutup aplikasi memiliki manfaat di perangkat iOS? tapi itu masih tidak cukup untukku. Terkadang saya menemukan lebih dari 50 aplikasi berjalan, jadi tidak menutupnya tidak masuk akal.

Mungkin saya sedikit chook lama dan Anda tidak bisa mengajari anjing baru trik baru, tetapi bisakah seseorang di sini menjelaskan MENGAPA lebih baik membiarkan semua aplikasi ini berjalan? Dan ketika saya mengatakan "jelaskan" maksud saya dengan istilah awam sehingga saya bisa mengerti.

FC
sumber
31
Kesalahpahaman adalah bagian "berjalan". Aplikasi di Switcher belum tentu berjalan, sebagian besar sebenarnya tidak. Anggap saja lebih sebagai daftar "yang terakhir digunakan" daripada monitor proses
nohillside
3
Seperti patrix, saya ingin menambahkan bahwa iOS menutup aplikasi dengan sendirinya ketika kehabisan memori, jadi meskipun sepertinya 50 aplikasi sedang "berjalan", jika Anda menonton video, ada peluang besar yang 49 lainnya miliki. telah dihentikan setelah 2/3 menit. Pengalih aplikasi hanya menampilkan tangkapan layar aplikasi baru-baru ini pada saat ini.
Coded Monkey
5
@CodedMonkey Saya sebagian besar setuju dengan komentar Anda, namun satu klarifikasi yang akan saya buat adalah bahwa 49 lainnya tidak akan dihentikan, mereka akan ditangguhkan. Perbedaannya adalah bahwa ketika sebuah aplikasi dihentikan, ia tidak lagi tersimpan dalam memori, sedangkan ditangguhkan berarti tidak terlihat di layar, juga tidak menjalankan kode. Dalam kondisi ini tidak menggunakan prosesor atau baterai, tetapi masih ada dalam memori. Namun, semua yang dikatakan, menggunakan contoh Anda, dugaan saya adalah bahwa iOS mungkin benar-benar menghentikan sebagian dari 49 aplikasi lainnya, tetapi menyimpan sebagian besar dari mereka dalam keadaan ditangguhkan.
Monomeeth
8
Kita mungkin perlu mengatasi gajah di dalam ruangan - apa yang membuat Anda mengatakan "biarkan semua aplikasi ini tetap berjalan" - dan apa yang spesifik adalah "tutup aplikasi" - iOS 11 menjalankan maksimum tiga aplikasi dan beberapa aplikasi mendapatkan aktivasi latar belakang berkala (sesuai desain) ) jika kita berbicara tentang OS dengan istilah stroke / awam yang luas. Jika ini dimaksudkan untuk menyuarakan perdebatan apakah akan menghapus thumbnail gambar aplikasi yang disimpan dari UI multitasking - mari kita jelaskan hal itu dalam pertanyaan.
bmike
3
Saya benar-benar menakuti teman-teman saya dengan memiliki (sekarang) 314 tans saya safari dan 57 aplikasi “terbuka”.
Tim

Jawaban:

64

Kamu tidak sendiri. Orang-orang hanya terbiasa dengan kebiasaan komputer desktop mereka, dan dapat dimengerti bahwa mereka membawa kebiasaan ini ke iPhone dan iPad mereka.

Namun, izinkan saya mencoba dan menjelaskan ini menggunakan analogi:

Bayangkan hari ini panas dan Anda sedang berkebun. Anda menjadi haus, jadi Anda masuk ke dapur, mengambil gelas besar, menaruh es di dalamnya, dan mengisinya dengan air. Anda kemudian minum setengahnya dan mengosongkan sisanya di wastafel sebelum kembali ke luar. Tidak lama kemudian, Anda merasa haus lagi, jadi Anda kembali ke dalam ke dapur, mengambil gelas yang sama, menaruh es di dalamnya, dan mengisinya dengan air. Sekali lagi Anda hanya minum setengahnya dan mengosongkan sisanya di wastafel!

Alur kerja di atas tidak masuk akal. Mengapa kamu tidak mengambil gelas di luar bersamamu? Dan, Anda tidak hanya membuang-buang air dengan mengosongkannya, tetapi Anda menghabiskan lebih banyak waktu dan energi untuk mendapatkan air itu lagi.

Demikian juga, ketika Anda keluar dari aplikasi, Anda sebenarnya menggunakan daya baterai dalam proses melakukannya (misalnya menghapusnya dari RAM, dll) dan kemudian lagi ketika Anda harus meluncurkannya lagi dan memuatnya kembali ke dalam RAM.

Jadi, untuk sebagian besar waktu, yang terbaik adalah membiarkan aplikasi tetap terbuka. Meskipun terbuka, mereka benar-benar hanya duduk dalam jenis mode diskors yang tidak menggunakan daya baterai apa pun. Ya, aplikasi ini masih dimuat dalam RAM dan mengambil ruang , tetapi sebenarnya tidak melakukan apa - apa - itu hanya terbaring di sana tidak aktif. Dan, karena tidak menggunakan daya baterai apa pun dalam kondisi ini, tidak ada untungnya menghentikannya dari sudut pandang konservasi baterai - terutama jika itu adalah aplikasi yang Anda tahu akan Anda gunakan berulang kali sepanjang hari.

Sama sekali tidak ada keuntungan untuk memaksa berhenti dari aplikasi karena iOS sendiri akan melakukan ini untuk Anda jika / ketika perlu untuk membebaskan RAM. Jadi jika Anda memiliki 50 aplikasi terbuka dan tetap terbuka, maka iOS belum didorong sejauh perlu untuk menutup salah satu dari mereka untuk membebaskan memori.

Sekarang, seperti apa pun, selalu ada pengecualian untuk aturan tersebut (seperti aplikasi yang harus melakukan tugas latar belakang). Contoh dari ini adalah yang memainkan musik saat Anda melakukan hal-hal lain dengan telepon Anda, atau yang mengunduh konten di latar belakang, atau yang menghitung berapa langkah Anda berjalan dalam sehari, dll. Namun, iOS memiliki proses yang efisien untuk mengelola aplikasi latar belakang / tugas dan jika Anda memilih untuk berhenti ini pada dasarnya Anda mengatakan Anda tidak percaya sistem operasi untuk melakukan tugasnya dengan benar.

Jadi, jangan ragu untuk keluar dari aplikasi Anda ketika Anda harus (misalnya karena itu beku, dll), tetapi jangan lakukan itu untuk menghemat daya baterai. Bahkan, jika Anda melakukannya, Anda akan mencapai yang sebaliknya dan menggunakan lebih banyak daya baterai sepanjang hari!

Ringkasan

  • Anda hanya perlu keluar dari aplikasi jika tidak berfungsi dengan baik (mis. Aplikasi telah dibekukan, tidak ditampilkan dengan benar, dll).
  • Aplikasi yang tercantum dalam Pengalih Aplikasi belum tentu berjalan - pada kenyataannya sebagian besar tidak berjalan sama sekali.
  • Sebagian besar aplikasi di App Switcher akan dalam status ditangguhkan - ini berarti tidak: terlihat di layar, mengeksekusi kode, menggunakan CPU atau GPU, atau menggunakan baterai. Namun, mereka yang masih tinggal di memori sampai mereka dibersihkan (jika perlu) oleh sistem untuk membebaskan memori:

    Ditangguhkan - Aplikasi ini ada di latar belakang tetapi tidak menjalankan kode. Sistem memindahkan aplikasi ke kondisi ini secara otomatis dan tidak memberi tahu mereka sebelum melakukannya. Saat ditangguhkan, aplikasi tetap ada di memori tetapi tidak menjalankan kode apa pun. Ketika kondisi memori rendah terjadi, sistem dapat membersihkan aplikasi yang ditangguhkan tanpa pemberitahuan untuk membuat lebih banyak ruang untuk aplikasi latar depan.

    Sumber : Lihat Tabel 2-3 dalam tautan referensi pertama di akhir jawaban ini.

  • Satu-satunya aplikasi yang benar-benar berjalan di iPhone Anda pada titik waktu tertentu adalah aplikasi yang aktif (yaitu yang terlihat di layar) dan aplikasi lain yang bekerja di latar belakang . ( Catatan: Ada beberapa pengecualian sementara untuk ini dalam kasus aplikasi yang masih membutuhkan waktu untuk menyelesaikan kode eksekusi yang sudah mereka mulai saat mereka aktif - biasanya ini hanya dalam urutan detik tetapi secara teoritis dapat diperluas hingga lebih dari satu menit.) .

  • Dalam hal aplikasi yang berjalan di latar belakang, Anda dapat mengontrol aplikasi mana yang diizinkan untuk melakukannya (jika terbuka) dengan masuk ke Pengaturan> Umum> Penyegaran Aplikasi Latar Belakang. ( Catatan: Hanya karena Anda melihat aplikasi yang tercantum di sini tidak berarti itu akan berjalan di latar belakang, tetapi menonaktifkannya di sini berarti tidak akan!)
  • Jika iPhone Anda terkunci, maka aplikasi yang aktif (yaitu terlihat di layar) saat Anda mengunci perangkat Anda sekarang tidak aktif . Namun, kecuali Anda baru saja mengunci iPhone Anda dan masih menyelesaikan kode pelaksana atau berjalan di latar belakang (misalnya memutar musik, dll.) Maka itu tidak menggunakan CPU, GPU atau baterai.

Referensi

  1. Untuk info lebih lanjut tentang berbagai keadaan di mana suatu aplikasi dapat masuk, lihat Panduan Pemrograman Aplikasi Apple untuk iOS: Negara-negara Eksekusi untuk Aplikasi .
  2. Untuk info lebih lanjut tentang aplikasi yang berjalan di latar belakang, lihat Panduan Pemrograman Aplikasi Apple untuk iOS: Eksekusi Latar Belakang .
Monomeeth
sumber
9
Jadi, jika Anda memiliki 50 aplikasi terbuka dan tetap terbuka, maka iOS belum didorong sejauh perlu untuk menutup salah satu dari mereka untuk membebaskan memori. Untuk menjadi jelas, tidak ada cara Anda dapat mengetahui apakah aplikasi dalam aplikasi switcher benar-benar terbuka (yaitu, tinggal di memori) atau tidak.
MJeffryes
24
Apa yang menguras baterai adalah memulai aplikasi lagi . Menangguhkan aplikasi itu murah. Melanjutkan aplikasi yang ditangguhkan itu murah. Tetapi perlu memuat aplikasi sepenuhnya dari awal membutuhkan banyak sumber daya (bahkan jika beberapa dari mereka mungkin masih di-cache): OS perlu memuat aplikasi dan semua kerangka kerja yang tergantung, kode startup aplikasi lengkap perlu dijalankan lagi, dll. .
DarkDust
5
Saya selalu berpikir bahwa switcher mencantumkan semua aplikasi yang pernah dibuka di ponsel hingga batas maksimum, sesuai urutan terakhir kali digunakan, terlepas dari apakah itu ada di memori atau tidak. Jika saya gulir ke belakang cukup jauh, beralih ke aplikasi akan menimbulkan jeda yang cukup lama karena (saya berasumsi) aplikasi dimuat dari disk. Apakah ada dokumentasi yang menegaskan pandangan Anda tentang perilakunya?
MJeffryes
7
Ini adalah jawaban yang bermanfaat, tetapi tidak mungkin iOS akan menahan 50 aplikasi semua, kecuali masing-masing memiliki jejak memori yang benar-benar mikroskopis. Saya beralih di antara aplikasi besar sepanjang hari (Safari, twitter, Facebook, Reddit, YouTube, dll), dan saya sering mendapatkan "isi ulang penuh" dengan beralih kembali ke aplikasi, hanya 2 atau 3 kartu di daftar yang paling baru digunakan.
BradC
3
@ Monomeetheth Banyak aplikasi yang dihentikan secara efektif - yaitu, membutuhkan memuat ulang penuh untuk melanjutkan - ada di pengalih aplikasi. iOS tidak akan sepenuhnya berhenti, saya tidak percaya, kecuali ada kerusakan - itu hanya tinggal di pengalih aplikasi, tidak ada dalam memori dan lebih atau kurang kenyamanan untuk mengakses lebih mudah.
Joe
22

Jawaban yang diberikan akurat, saya hanya ingin mengklarifikasi dari sudut pandang pengembang iOS.

iOS dirancang untuk mengelola sebanyak mungkin hal sehingga Anda (dan pengembang) tidak perlu khawatir. Hasil akhirnya adalah pendekatan yang agak konsisten di seluruh aplikasi, termasuk yang dari Apple (bahkan terkadang Apple sendiri mengambil jalan pintas).

Karena itu, premisnya adalah:

  • iOS tahu lebih banyak tentang memori daripada kita. Ia tahu berapa banyak yang dimilikinya, dan berapa yang dibutuhkannya (sampai tingkat tertentu).
  • iOS memiliki kontrol penuh atas memori; ia memiliki kata terakhir tentang siapa yang menggunakan apa.
  • Jika iOS membutuhkan memori, maka akan menemukannya, dan ini biasanya dilakukan dengan mematikan proses lain yang telah lama tidak digunakan (dan ada banyak aturan di belakang layar, kita tidak tahu semuanya, dan kita tidak benar-benar tahu. khawatir tentang mereka).
  • Semua yang Prosesor (CPU) lakukan, membutuhkan energi. Semuanya sepenuhnya. Jangan lupa komputer hanyalah wadah elektron yang sangat kecil yang memindahkannya dalam ruang yang sangat kecil.
  • Ketika sebuah aplikasi terbunuh, ada beberapa protokol (kontrak) yang disepakati yang menentukan apa yang perlu dilakukan. iOS menegakkan dan membawa protokol ini. Tetapi pekerjaan harus dilakukan, itu tidak gratis dan tentu saja tidak selalu murah (itu benar-benar tergantung pada apa App).

Setelah mengatakan semua itu, kita mengasumsikan sebagian besar pengguna menutup aplikasi dengan harapan untuk meningkatkan masa pakai baterai, di bawah kesan bahwa, dengan menutup sesuatu, maka lebih sedikit energi yang terbuang untuk menjaga aplikasi ini berjalan.

Yang benar adalah, di iOS, ini hampir tidak pernah terjadi. Saat Anda menekan rumah, aplikasi ditangguhkan dan tidak lagi menggunakan sumber daya yang mungkin dibutuhkan aplikasi lain. Jika aplikasi baru (atau bahkan iOS) membutuhkan memori itu, itu akan mengurusnya sendiri, tetapi hanya jika perlu.

Anda menutup aplikasi berulang-ulang, memaksa iOS untuk membuat tugas yang berpotensi mahal itu benar-benar menurunkan aplikasi, menyimpan statusnya dan yang tidak, dengan masalah tambahan bahwa ketika Anda membuka kembali aplikasi, semua hal itu harus dikembalikan. dan, tergantung pada kerumitan aplikasi, banyak hal harus dibaca dari penyimpanan, naik ke memori utama ponsel, dan sebagainya. Semua pekerjaan ekstra ini, bisa dihindari jika Anda membiarkan aplikasi tetap dalam status "ditangguhkan".

Namun ...

Dalam beberapa kasus (dan mereka jarang tetapi tidak jarang langka), Anda ingin membunuh aplikasi yang mengalami gangguan. Contohnya adalah (tetapi tidak terbatas pada): Aplikasi yang berurusan dengan audio latar belakang, atau layanan asinkron seperti lokasi (tempat aplikasi meminta lokasi dan iOS harus pergi dan bertanya di sekitar tempat itu, misalnya, dengan menembakkan GPS jika diperlukan) , streaming video, dll.

Saya memiliki banyak sekali contoh aplikasi seperti Lyft, United Airlines, bahkan Twitter, yang berakhir dalam keadaan rusak (atau tidak berfungsi dengan baik), baik karena Anda berada di jaringan yang buruk (iOS menjadi sangat buruk di memulihkan dari beberapa jaringan buruk dalam 3-4 rilis terakhir) atau jaringan tidak merespons dengan benar.

Pada waktunya, sebagian besar masalah ini cenderung hilang dan aplikasi mulai bekerja lagi; tetapi jika Anda benar-benar membutuhkan aplikasi untuk bekerja sekarang , maka Anda harus melanjutkan dan membayar harga harus membunuhnya dan memulai kembali dari awal. Anda menggunakan lebih banyak baterai dengan melakukan itu, tetapi, hei, Anda membutuhkannya.

Dan jika ini membingungkan, saya bisa memberi Anda analogi mobil, karena itulah yang cenderung kita lakukan sepanjang waktu.

Analogi Mobil

Saya tahu bahwa teknologi mobil telah maju dan ini bukan lagi contoh yang baik, tetapi bermainlah dengan saya di sini .

Memecat mesin mobil yang digunakan untuk menggunakan lebih banyak bahan bakar daripada hanya pemalasan. Ketika mobil memiliki karburator, bukan injektor, ini bahkan lebih buruk; itu sebabnya mematikan mesin saat Anda berhenti di lampu merah, secara teoritis dapat menggunakan lebih banyak bahan bakar daripada hanya diam selama satu menit. Mobil-mobil baru memiliki mekanisme yang jauh lebih efisien dan dapat menghentikan mesin, tetapi tetap dalam kondisi semi-dimulai (jangan terlalu ke dalam mobil di sini).

Anda menutup aplikasi, sama dengan seseorang mematikan mobil di setiap lampu berhenti. Berbeda dengan membiarkannya diam sampai Anda membutuhkannya lagi, biasanya beberapa detik kemudian.

Analogi ini tidak sempurna, karena kenyataannya, mobil-mobil idle masih menggunakan bahan bakar, sedangkan aplikasi yang ditangguhkan tidak; Namun, di mata telepon, mereka tidak menggunakan memori / baterai apa pun yang terkait (asalkan mereka tidak memiliki pemrosesan latar belakang jenis apa pun yang aktif, jelas).

Anda pada dasarnya mematikan mesin Anda setiap kali Anda mematikan suatu aplikasi, dan Anda tidak membiarkan mekanisme “pintar” iOS untuk mematikan mesin Anda, jadi ketika lampu menyala hijau, Anda cukup menekan akselerator dan mesin bekerja lebih cepat daripada jika 100% dihentikan. Memulai mesin dari kondisi berhenti, juga menggunakan daya lebih dari sekadar bahan bakar, Anda perlu memutar starter agar mesin bisa diputar, bahan bakar disuntikkan, dan bunga api tercipta, jadi ... banyak pekerjaan di belakang layar. Aplikasi seperti mesin. :)

Martin Marconcini
sumber
1
Haha, saya suka analogi (dan jawaban Anda). :)
Monomeeth
Pertanyaan tentang komentar Anda: aplikasi yang keliru: "[...] jika Anda benar-benar membutuhkan aplikasi untuk bekerja sekarang, maka Anda harus terus maju dan membayar harga harus membunuhnya dan memulai kembali dari awal. Anda menggunakan lebih banyak baterai dengan melakukan itu [...] "Apakah Anda percaya ini secara universal lebih boros? Walaupun saya tidak keluar dari aplikasi, saya sering menganggap bahwa aplikasi yang bermasalah atau bermasalah cenderung menghabiskan banyak sumber daya dengan berulang kali mencoba dan gagal melakukan apa pun yang ingin dilakukan. Saya melihat bahwa ini bisa kurang intensif daripada memulai kembali dari awal, Anda percaya bahwa pada umumnya demikian?
brhfl
1
@ brhfl Sulit dikatakan, setiap aplikasi adalah dunia yang berbeda. Ada beberapa tanda yang jelas bahwa ada sesuatu yang salah. Jika ponsel Anda menjadi sangat panas dalam waktu singkat ketika Anda hanya mencoba menggunakan aplikasi, itu mungkin berarti CPU sedang digunakan, atau jika ponsel terasa lamban (misalnya animasi melewatkan bingkai misalnya). Itu adalah pertanda baik bahwa ada sesuatu yang menggunakan lebih banyak sumber daya daripada yang seharusnya dan dalam kasus-kasus tersebut, membunuh aplikasi yang dicurigai adalah cara yang harus diambil. Secara umum, jika aplikasi ditangguhkan (latar belakang) bahkan jika itu tidak berfungsi dengan baik, ia tidak akan memiliki pilihan selain berperilaku; atau berisiko dibunuh oleh iOS.
Martin Marconcini
1
  1. Jika Anda mematikan aplikasi sepenuhnya, maka ketika Anda harus membukanya kembali di lain waktu, biaya overhead yang terkait dengan peluncuran instance baru aplikasi lebih banyak menggunakan CPU dan energi daripada hanya beralih dari satu aplikasi ke aplikasi lainnya.
  2. Ketika sebuah aplikasi hanya duduk di sana dalam memori, kecuali jika itu benar-benar dibangun untuk berjalan di latar belakang, itu biasanya dijeda atau dimatikan dan tidak mengkonsumsi siklus CPU (biasanya). Jika itu adalah aplikasi yang cukup sederhana, maka itu hanya akan duduk di sana menggunakan memori. Dalam kasus seperti itu, keadaan aplikasi bertahan di tempat lain (pada penyimpanan perangkat dalam kasus Android) sehingga kondisi aplikasi dapat dipulihkan nanti. Untuk memberi Anda ide, pesan yang agak lama tidak terkirim yang saya tulis di aplikasi Viber di ponsel saya berhasil dimatikan karena baterai habis. Setelah menghidupkan ulang ponsel, kemudian Viber, saya menemukan pesan menunggu saya untuk mengirimkannya. Halleluja.
  3. Tergantung pada chip memori Anda, apakah mengandung nol atau yang tidak akan membuat perbedaan yang signifikan dalam konsumsi daya. Jadi menyimpan barang-barang di memori tidak tidak akan secara signifikan membuat Anda menghemat baterai.
  4. Ketika sebuah aplikasi dalam kondisi tidur sangat nyenyak (teman-teman, mohon konfirmasikan ini), hanya referensi yang akan terlihat di pengalih aplikasi sebagai snapshot dari layar terakhir yang terlihat dari sebelum masuk ke bawah. Saya mengatakan ini karena suatu hari, saya telah memutuskan untuk menutup semua aplikasi di iPad saya, dan saya terkejut dengan jumlah aplikasi yang harus saya tutup. Itu lebih dari 60 aplikasi. Semua ini tidak bisa disimpan di memori iPad. Saya melihat beberapa aplikasi di sana, yang digunakan beberapa bulan yang lalu.

Sebagai analogi dengan mobil Anda, jika Anda perlu berhenti terlalu banyak di siang hari dan terus berhenti dan menyalakan mesin, akan tiba saatnya ketika baterai akan benar-benar habis. Ini dapat terjadi jika waktu pengisian saat Anda mengemudi di antara berhenti tidak cukup lama untuk mengembalikan jumlah energi luar biasa yang dihisap keluar dari baterai setiap kali Anda menyalakan mesin. Selain itu, tidak baik untuk starter dan konsumsi gas keseluruhan. Itu sebabnya banyak pengemudi truk pengiriman akan menjaga mesin idle selama pemberhentian singkat mereka.

Analogi ini mirip dengan mitos penghematan memori.

Abdoulaye Siby
sumber
-1

Hanya melemparkan pendapat yang berbeda di luar sana demi diskusi. Konsep ini memiliki tingkat kebenaran tertentu, tetapi begitu Anda memiliki sejumlah aplikasi terbuka, Anda mungkin akan mulai melihat hasil yang semakin berkurang untuk menjaga aplikasi ditangguhkan.

Semakin banyak aplikasi yang Anda buka, semakin banyak ram yang akan digunakan, jelas. Biasanya setiap aplikasi dalam memori terbagi sebagai memori yang sebenarnya digunakan oleh aplikasi itu sendiri, memori yang ingin dimiliki aplikasi tersebut, dan memori yang digunakan sistem operasi untuk aplikasi tersebut, yang memberi Anda jumlah memori terakhir dari aplikasi tersebut. diizinkan untuk digunakan. Alasan mengapa aplikasi menyimpan bagian terpisah dari memori ini sebagai memori yang ingin digunakan, adalah karena aplikasi mungkin perlu menumbuhkannya, tetapi itu tidak selalu ingin melakukannya langsung dari kelelawar karena itu buruk bagi pengumpul sampah untuk memiliki tumpukan besar (tumpukan besar = pengumpulan sampah yang lebih lama), sehingga aplikasi akan menyisihkan sebagian memori yang saat ini tidak digunakan, tetapi itu dapat digunakan oleh aplikasi secara eksklusif jika diperlukan.

Katakanlah OS memungkinkan aplikasi saya hingga 700mb, dan aplikasi menyisihkan 300mb dari memori itu untuk dirinya sendiri, meninggalkan 400mb di luar sana untuk digunakan oleh aplikasi saya jika mau, tetapi kemudian aplikasi lain terbuka dan membutuhkan memori; OS melihat semua aplikasi yang berbeda, dan memutuskan apakah boleh mengambil beberapa memori dari aplikasi lain dan menggunakannya untuk aplikasi baru, dalam hal ini mungkin memutuskan untuk mengambil 150mb dari aplikasi saya memori yang diizinkan dan memberikannya ke aplikasi baru , membutuhkan memori untuk ditukar sekitar untuk memberikan memori aplikasi baru untuk digunakan (anggap ini sebagai realokasi dana dalam bisnis) dengan baik, semakin banyak aplikasi yang Anda buka, semakin banyak pekerjaan yang harus dilakukan sistem operasi untuk benar-benar memutuskan memori aplikasi mana yang dapat disedot untuk memberikan memori aplikasi baru.

Dalam hal ini, setiap aplikasi yang dibuka dan ditangguhkan menambah kompleksitas pada proses ini, menjadikannya lebih intensif CPU, dan akhirnya membutuhkan daya baterai yang berpotensi lebih besar untuk membuka aplikasi di masa mendatang daripada daya baterai yang dihemat dengan tidak menutup aplikasi lain.

Sekarang ingatlah, tidak ada yang mempertimbangkan bahwa kecuali Anda benar-benar mematikan aplikasi, mungkin ada layanan latar belakang yang berjalan yang akan menghabiskan daya pemrosesan, misalnya pemberitahuan yang diatur untuk memberi tahu Anda tentang penghitung waktu, dll. Di sisi lain, beberapa aplikasi tidak menggunakan layanan latar belakang sejati, dan benar-benar menggunakan pemberitahuan push dari layanan seperti firebase, yang tidak mengharuskan aplikasi untuk dibuka kapan saja.

Hal lain yang perlu dipertimbangkan, semakin banyak aplikasi yang Anda buka secara terus-menerus, semakin terfragmentasi memori pada awalnya sampai OS melewati dan membersihkan memori menjadi lebih bersih dan ditata lebih efisien, ini sendiri juga mengunyah daya pemrosesan, dan semakin banyak memori yang digunakan oleh aplikasi, semakin intensif proses ini untuk perangkat Anda.

Semua ini untuk mengatakan, membiarkan aplikasi terbuka sebagian besar lebih efisien, kecuali jika terlalu banyak aplikasi dibuka, namun saya tidak yakin berapa banyak aplikasi yang perlu dibuka untuk mencapai ambang ini, jika jumlahnya ada.

Sumber:

Pemungut sampah SGen untuk Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/

Gambaran umum profiler memori untuk aplikasi iOS dan Android Xamarin, yang menunjukkan cara memori dikelola oleh aplikasi (set kerja, byte pribadi, alokasi memori, dll.) Https://blog.xamarin.com/say-hello-to -the-xamarin-profiler /

Trevor Hart
sumber
1
Saya tidak yakin ini benar - apakah Anda seorang pengembang iOS? Saya percaya bahwa iOS dapat, atas kebijakannya sendiri, membunuh aplikasi yang ditangguhkan yang diperlukan untuk membebaskan memori, tetapi saya sangat meragukan itu dapat mengurangi sebagian jejak kaki memori aplikasi yang ditangguhkan. Setidaknya sebagai pengguna, tampaknya semuanya atau tidak sama sekali.
BradC
2
Itu semua berlaku untuk OS "penuh" yang melakukan multitasking simultan dari aplikasi yang berjalan penuh. Itu tidak berlaku untuk iOS (kecuali untuk konfigurasi layar terpisah yang lebih baru). Saya tidak mengatakan saya yakin Anda salah, saya hanya mengatakan insting Anda dari OS lain mungkin tidak berlaku di sini.
BradC
1
Dan IMHO Anda membingungkan pengalih aplikasi dengan daftar aplikasi "terbuka" / "dalam memori". Ini jelas bukan masalahnya, jadi jejak memori mungkin sama untuk iPhone dengan 5 atau 20 aplikasi di switcher
nohillside
2
Manajemen memori kerangka kerja Mono / Xamarin tidak mewakili bagaimana aplikasi / layanan asli bekerja pada platform iOS. iOS dan runtime Objective-C / Swift tidak menerapkan pengumpulan sampah.
Mike Mertsock
2
@TrevorHart menggunakan pengembang
Mateusz Szlosek
-2

Versi clean cut: Lebih baik karena OS dirancang untuk membuatnya lebih baik sehingga pengguna ingin menyimpan aplikasi (atau dalam kondisi "ditangguhkan") untuk mengumpulkan lebih banyak informasi tentang tindakan Anda [*] nanti jika diperlukan.

Versi yang lebih lama: Aplikasi yang "ditangguhkan" akan menyimpan statusnya dalam memori sehingga sekali Anda ingin memulai kembali proses memuat semuanya kembali akan memerlukan lebih sedikit waktu untuk prosesor dan hampir tidak menggunakan unit penyimpanan ... Dengan ini Anda tidak bisa tahu apakah aplikasi Anda melakukan beberapa hal lain di latar belakang yang dalam banyak kasus mereka duduk di sana mengumpulkan data pada Anda.


[*] Untuk menguraikan pengumpulan data di pihak Anda ... aplikasi yang disimpan dalam memori dapat "ditangguhkan" atau aktif di latar belakang. Anda sebagai pemilik perangkat tidak dapat mengetahui (jika Anda tidak memiliki pengetahuan dan beberapa aplikasi lain untuk secara aktif memindai penggunaan CPU) apa yang dikatakan aplikasi tersebut benar-benar lakukan. Dari sudut pandang keamanan, saya menyarankan untuk menutup aplikasi apa pun yang tidak akan Anda gunakan selama 10 menit berikutnya.

PS Praktek ini dilakukan pada perangkat Android juga ...

Kaotis
sumber
6
-1 Jawaban ini akan lebih baik jika tidak memiliki nada "ponsel Anda dirancang untuk memata-matai Anda".
Nzall
4
"Ponsel Anda dirancang untuk memata-matai Anda" tidak benar-benar berlaku untuk perangkat Apple - mereka tidak menghasilkan uang dari data pribadi afaik.
wizzwizz4
1
@ wizzwizz4 Mengatakan siapa?
yo
1
@yo 'Mengatakan ketidakmampuan saya untuk menemukan bukti yang menunjukkan bahwa mereka melakukannya. Asumsikan itikad baik, dan semua itu.
wizzwizz4