ফোনের মসৃণ মাল্টিটাস্কিংয়ের জন্য যে পরিমাণ RAM প্রয়োজন তা বেশ বিতর্কিত বিষয়। অ্যাপল তার আইফোনগুলিতে একটি ছোট আকারের সাথে পায়, যা প্রায়শই অ্যান্ড্রয়েড সমাধানগুলির চেয়ে বেশি ব্যবহারযোগ্য। আপনি আইফোনে কোনো ধরনের র্যাম মেমরি ম্যানেজমেন্টও পাবেন না, যেখানে অ্যান্ড্রয়েড এর নিজস্ব ডেডিকেটেড ফাংশন রয়েছে।
আপনি যদি যান, উদাহরণস্বরূপ, Samsung Galaxy ফোনে নাস্তেভেন í -> ডিভাইসের যত্ন, আপনি এখানে একটি RAM ইন্ডিকেটর পাবেন যেখানে কতটা জায়গা খালি আছে এবং কতটা দখল আছে। মেনুতে ক্লিক করার পর, আপনি দেখতে পারবেন প্রতিটি অ্যাপ্লিকেশন কত মেমরি নিচ্ছে এবং আপনার কাছে এখানে মেমরি ক্লিয়ার করার বিকল্পও রয়েছে। RAM Plus ফাংশনটিও এখানে অবস্থিত। এর অর্থ হ'ল এটি অভ্যন্তরীণ স্টোরেজ থেকে একটি নির্দিষ্ট সংখ্যক জিবি কামড় দেবে, যা এটি ভার্চুয়াল মেমরির জন্য ব্যবহার করবে। আপনি iOS এর মত কিছু কল্পনা করতে পারেন?
স্মার্টফোন র্যামের উপর নির্ভর করে। এটি তাদের অপারেটিং সিস্টেম সংরক্ষণ করতে, অ্যাপ্লিকেশন চালু করতে এবং ক্যাশে এবং বাফার মেমরিতে তাদের কিছু ডেটা সঞ্চয় করতে পরিবেশন করে। সুতরাং, RAM এমনভাবে সংগঠিত এবং পরিচালনা করা আবশ্যক যাতে অ্যাপ্লিকেশনগুলি সহজে চলতে পারে, এমনকি যদি আপনি সেগুলিকে ব্যাকগ্রাউন্ডে ফেলে দেন এবং কিছুক্ষণ পরে আবার খুলতে পারেন।
সুইফট বনাম জাভা
কিন্তু একটি নতুন অ্যাপ্লিকেশন শুরু করার সময়, এটি লোড এবং চালানোর জন্য আপনার মেমরিতে ফাঁকা স্থান থাকতে হবে। যদি এটি না হয় তবে জায়গাটি খালি করতে হবে। সিস্টেম তাই জোরপূর্বক কিছু চলমান প্রক্রিয়া বন্ধ করে দেবে, যেমন অ্যাপ্লিকেশনগুলি ইতিমধ্যে শুরু হয়েছে। যাইহোক, উভয় সিস্টেম, যেমন Android এবং iOS, RAM এর সাথে ভিন্নভাবে কাজ করে।
আইওএস অপারেটিং সিস্টেমটি সুইফটে লেখা আছে এবং আইফোনগুলিকে আসলে সিস্টেমে বন্ধ অ্যাপ থেকে ব্যবহৃত মেমরি রিসাইকেল করতে হবে না। এটি আইওএস তৈরির পদ্ধতির কারণে, কারণ অ্যাপলের এটির উপর সম্পূর্ণ নিয়ন্ত্রণ রয়েছে কারণ এটি কেবল তার আইফোনগুলিতে চলে। বিপরীতে, অ্যান্ড্রয়েড জাভাতে লেখা এবং অনেক ডিভাইসে ব্যবহৃত হয়, তাই এটি আরও সর্বজনীন হতে হবে। অ্যাপ্লিকেশনটি বন্ধ হয়ে গেলে, এটি যে স্থান নিয়েছে তা অপারেটিং সিস্টেমে ফিরিয়ে দেওয়া হয়।
নেটিভ কোড বনাম। জেভিএম
যখন একজন বিকাশকারী একটি iOS অ্যাপ লেখেন, তখন তারা এটিকে সরাসরি কোডে কম্পাইল করে যা আইফোনের প্রসেসরে চলতে পারে। এই কোডটিকে নেটিভ কোড বলা হয় কারণ এটি চালানোর জন্য কোন ব্যাখ্যা বা ভার্চুয়াল পরিবেশের প্রয়োজন নেই। অন্যদিকে, অ্যান্ড্রয়েড ভিন্ন। যখন জাভা কোড কম্পাইল করা হয়, তখন এটি জাভা বাইটকোড ইন্টারমিডিয়েট কোডে রূপান্তরিত হয়, যা প্রসেসর-স্বাধীন। তাই এটি বিভিন্ন নির্মাতার বিভিন্ন প্রসেসরে চলতে পারে। ক্রস-প্ল্যাটফর্ম সামঞ্জস্যের জন্য এর বিশাল সুবিধা রয়েছে।
অবশ্যই, একটি খারাপ দিক আছে। প্রতিটি অপারেটিং সিস্টেম এবং প্রসেসরের সমন্বয়ের জন্য একটি পরিবেশ প্রয়োজন যা জাভা ভার্চুয়াল মেশিন (JVM) নামে পরিচিত। কিন্তু নেটিভ কোড JVM এর মাধ্যমে এক্সিকিউট করা কোডের চেয়ে ভালো পারফর্ম করে, তাই JVM ব্যবহার করলে অ্যাপ্লিকেশন দ্বারা ব্যবহৃত RAM এর পরিমাণ বৃদ্ধি পায়। সুতরাং iOS অ্যাপগুলি কম মেমরি ব্যবহার করে, গড়ে 40%। এ কারণেই অ্যাপলকে তার আইফোনগুলিকে অ্যান্ড্রয়েড ডিভাইসগুলির মতো যতটা RAM দিয়ে সজ্জিত করতে হবে না।
আমি ঠিক একজন বিশেষজ্ঞ নই, কিন্তু আমি একজন ব্যবহারকারীর দৃষ্টিকোণ থেকে আমার দৃষ্টিভঙ্গি বর্ণনা করব যিনি 15 বছর ধরে অ্যান্ড্রয়েড ব্যবহার করেছেন এবং এখন আইফোন 2 মিনিতে 13 মাস বয়সী। 8GB মেমরি সহ অ্যান্ড্রয়েডে (সবচেয়ে সম্প্রতি স্যামসাং এস21, ফ্লিপ3) আমি সাধারণত একটি নির্দিষ্ট সময় পরে পূর্বে চালু করা অ্যাপ্লিকেশনটিতে ফিরে আসি এবং এটি এখনও RAM-এ লোড ছিল, তাই এটি আবার শুরু হয় নি এবং আমি সহজে যেখানেই উঠতে পারি ছেড়ে দেওয়া অন্যদিকে, এমনকি 8 গিগাবাইট মেমরির সাথে, আমি RAM সাফ করার জন্য সপ্তাহে একবার সমস্ত অ্যাপ্লিকেশন "শট ডাউন" করি, কারণ সিস্টেমটি সম্পূর্ণ মেমরির সাথে ধীর হতে শুরু করে। আইফোনে গতি কমানোর সাথে আমার কোন সমস্যা নেই, কিন্তু অন্যদিকে, আমাকে বলতে হবে যে প্রায় একই ধরনের অ্যাপ্লিকেশন ব্যবহার করার সময়, বিপরীতভাবে, এটি আমার সাথে নিয়মিত ঘটে যে আমি যখন পূর্বে চালু করা একটি অ্যাপ্লিকেশনে ফিরে যাই, এটি আবার সম্পূর্ণরূপে লোড হয় এবং আমি যেখান থেকে ছেড়েছিলাম সেখানে সহজে চালিয়ে যেতে পারি না।
কোন বিকল্প ভাল? বলা মুশকিল... অ্যান্ড্রয়েডে অ্যাপসকে মেরে ফেলা এবং র্যাম পরিষ্কার করা দুটি ক্লিকের ব্যাপার। আইফোনে পুরো অ্যাপ্লিকেশনটি আবার লোড করা এত সময়সাপেক্ষ নয়, তাই এটি এতটা গুরুত্বপূর্ণ নয়... অবশ্যই, আইফোনে আরও বেশি র্যাম থাকা এবং অ্যান্ড্রয়েডের মতো মাল্টিটাস্কিং করা আদর্শ হবে :-D
ছিঃ, এটা আবার বোকা. একটি জিনিসের জন্য, অ্যান্ড্রয়েড দীর্ঘদিন ধরে জাভাতে করা হয়নি, এটিই কোটলিনের জন্য। আবর্জনা সংগ্রাহক মেমরির দায়িত্বে রয়েছে, যা iOS-এ সবচেয়ে সহজ, যা তার অসুবিধাগুলির সাথেও বিদ্যমান। পুরো ব্যাপারটি হল যে iOS অ্যাপগুলিকে স্ক্রীন থেকে সরিয়ে নেওয়ার সাথে সাথে মেরে ফেলে। এটি লিনাক্সের মতো মেমরিকে মুক্ত করে যখন আপনি একটি প্রক্রিয়ার কিল পিড টাইপ করেন। যে কারণে ব্রাউজার খুলে আগের কাজে ফিরতে এত সময় লাগে। এই নিবন্ধটি একটি X বছর পুরানো নিবন্ধের একটি মৌখিক অনুবাদ একটি iOS ধর্মান্ধ দ্বারা কোন প্রোগ্রামিং জ্ঞান নেই. হ্যাঁ, অবশ্যই, মেমরি পরিচালনার দায়িত্ব মূলত প্রোগ্রামারের, অ্যাপ্লিকেশনটি কী করে। যদি তিনি এটিতে কাশি করেন, তাহলে পৃথিবীতে একটি মেমরি লিক আছে এবং আপনার কাছে X গিগাবাইট মেমরি থাকতে পারে এবং এটি এখনও অকেজো। এবং একটি সময়ে যখন অনেক অ্যাপ্লিকেশন শুধুমাত্র WebView হয়, এটি খুবই সহজ, কারণ এটি নিজে যা পারে তা খায়। নিবন্ধটি আজেবাজে, আবর্জনা।
অ্যান্ড্রয়েড আর জেভিএম ব্যবহার করে না, তবে ডিভিএম ব্যবহার করে। এবং উপরন্তু, এটি তারপর একটি নেটিভ এক্সিকিউটেবল মধ্যে কম্পাইল
জাভা এখনও অ্যান্ড্রয়েডে আছে।