در تمامی بازارهای محصولات الکترونیکی، شکلگیری نبرد میان تولیدکنندگان این محصولات اجتنابناپذیر است. بهطور مثال، تولیدکنندهی A با تولید محصول X که ویژگی منحصربهفردی با ظرفیت ۲۴ دارد، تولیدکنندهی B را مجاب به عرضهی محصول Y با ظرفیت ۳۶ میکند و نهایتا تولیدکنندهی A به محصول جدید پاسخ میدهد و رقابت ویژهای میان این دو شکل میگیرد. بااینحال در برخی از موارد، رقابت یادشده از کنترل خارج میشود؛ یعنی شرکت A که تولید محصول X را با ظرفیت ۲۴ آغاز کرده بود، پس از مدتی محصولات خود را با ظرفیت عظیم و غیرضروری ۴۸ عرضه میکند. تولیدکنندگان گوشی هوشمند نیز از این قاعده مستثنی نیستند و روزبهروز در پی بهبود عملکرد پردازندهها، افزایش حافظهی داخلی، بهبود عملکرد دوربین و… هستند. اغلب این افزایشها در سطح عملکردی ضروری و اثربخش است و با استقبال کاربران مواجه میشود؛ ولی بهنظر میرسد این رقابت در بخش تولید حافظهی رم (Random access memory یا RAM) به سطح غیرضروری و بیحاصلی کشیده شده است.
در ابتدای عرضهی گوشیهای هوشمند اندرویدی، رم بهکاررفته در آنها ۵۱۲ مگابایت و در بیشترین حالت ۱ گیگابایت بود؛ اما این آغاز خاضعانهی انقلاب گوشیهای هوشمند بود و با گذشت زمان حافظهی رم استفادهشده افزایش یافت. در سال ۲۰۱۴، بیشتر گوشیهای هوشمند پرچمدار سه گیگابایت رم داشتند و در سالهای ۲۰۱۶ و ۲۰۱۷، رم ۴ گیگابایتی در عمل به استاندارد رمهای گوشیهای هوشمند تبدیل شد. سپس رقابت برای عرضهی رمهای بیشتر شدت گرفت؛ بهگونهای که تولیدکنندگان ابتدا محصولاتی با رم ۶ و پسازآن ۸ و درنهایت ۱۲ گیگابایتی روانهی بازار کردند. در اینجا، این سؤال مطرح میشود: «این روند کجا بهپایان خواهد رسید؟»
با اینکه حافظهی رم در گوشیهای هوشمند بهصورت مداوم در حال افزایش است، حقیقتا چقدر رم نیاز کاربران را تأمین میکند؟ لپتاپهای مجهز به چهار گیگابایت رم بهسادگی سیستمعامل ویندوز ۱۰ را اجرا میکنند و مکبوکهای ۸ گیگابایتی نیز میتوانند نرمافزارهای نسبتا سنگینی نظیر فتوشاپ و Premiere Pro را اجرا کنند. با چنین توصیفاتی، آیا گوشیهای هوشمند درمقایسهبا سیستمهای کامپیوتری به رم بیشتری نیاز دارند؟ تصور بیشتر کاربران این است که از میزان رم مصرفی گوشیهای هوشمند آگاه هستند؛ اما احتمالا این تصور خلاف واقع است. برای پیبردن به حقیقت این ماجرا، درادامه نگاهی عینی به میزان رم مصرفی انداختهایم.
مدیریت رم
در ابتدا باید به نحوهی مدیریت رم گوشیهای هوشمند مبتنیبر سیستمعامل اندروید اشاره کنیم. زمانیکه برنامهای در سیستمعامل اندروید اجرا میشود، کرنل یا هستهی لینوکس فرایند جدیدی آغاز میکند. این فرایند شامل واحدی از اجرا بههمراه فضای آدرس مجازی اطلاعات مرتبط در داخل حافظهی رم است. هستهی لینوکس اطلاعات و منابع موردنیاز برای پردازش شامل مدت زمان انجام پردازش در داخل پردازنده و دادههای ورودی و خروجی (تحت شبکه یا فایلهای سیستم) و حافظهی فیزیکی را مدیریت میکند.
هنگامیکه منابع موردنیاز مانند حافظهی رم وسیعتر باشند، هسته فرایندها را بهسادگی انجام میدهد. اگر انجام فرایند به زمان پردازشی بیشتری نیاز داشته باشد و پردازنده نیز در حالت اجرا نباشد، هسته بهراحتی میتواند این زمان را افزایش دهد. اگر تعداد و حجم دادههای ورودی و خروجی کمتر از ظرفیت سیستم باشند، افزایش مقادیر مذکور مشکلی را ایجاد نخواهد کرد. همچنین اگر انجام فرایندی به حافظهی رم بیشتری نیاز داشته باشد و حافظهی بیشتری نیز دردسترس باشد، هسته با ردیابی و شناسایی بیتهای استفادهشده از حافظهی رم برای تکتک فرایندهای در حال اجرا، فضای مازادی از رم را به فرایند یادشده اختصاص میدهد.
بااینحال، زمانیکه منابع کافی دراختیار کرنل نباشد، قضیه پیچیدهتر میشود. با درنظرگرفتن زمان پردازشی کافی و مقدار مناسب دادههای ورودی و خروجی، بزرگترین مسئله در زمان اوج بارگذاری سیستم کارایی آن است که به شرایط پردازنده و نیز حافظهی رم بستگی دارد. اگر پردازنده در حال اجرای پردازشهای دیگری باشد، فرایند جدید با سرعت کمتری انجام خواهد شد. بااینحال در زمان کمبود میزان رم، صبرکردن سبب خالیشدن حافظه و اجرای فرایند جدید نمیشود و هسته برای تخلیهی حافظه به نوعی تحریک نیاز دارد.
لینوکس و اندروید عمل تحریک را در دو مرحله انجام میدهند: در وهلهی اول، اندروید میتواند با استفاده از ویژگی zRAM، مقدار چشمگیری از حافظهی رم گوشی هوشمند را برای مبادلهسازی و تعویض فرایند جدید اختصاص دهد. مبادلهسازی ایدهای است که سیستمعامل لینوکس در سیستمهای خانگی و سرورها استفاده میکند. در لینوکس، اگر حافظهی رم کافی برای اجرای برنامهها وجود نداشته باشد، قدیمیترین و کماستفادهترین اطلاعات موجود در رم روی دیسک حافظهی دائمی منتقل و جای خالی آنها برای انجام سایر فرایندها استفاده میشود. در زمان نیاز دوباره به اطلاعات مبادلهسازیشده، این دادهها از حافظهی دائمی فراخوانی و به رم منتقل میشوند.
اندروید اطلاعات موجود در حافظهی رم را فشرده و در بخشی از فضای رم با نام zRAM بازنویسی میکند. اگر میزان کاهش حجم درصورت فشردهسازی ۵۰ درصد باشد، حجم دادهای ۱۲۸ کیلوبایتی به ۶۴ کیلوبایت کاهش مییابد و درنتیجه، ۶۴ کیلوبایت از فضای رم آزاد میشود. این فرایند مشابه فرایند تعویض بهکمک دیسک حافظهی دائمی است. حافظهی فشردهسازیشده بهصورت مستقیم دردسترس نیست؛ بنابراین درصورت نیاز، هستهی آن را از حالت فشرده خارج میکند و دوباره در فضای عمومی رم قرار میدهد.
زمانیکه فرایندی به رم بیشتری نیاز داشته باشد و حافظهی رم کافی نیز دردسترس نباشد، هسته سعی میکند مقداری از حافظهی رم را با استفاده از روش مبادله آزادسازی کند؛ اما اگر این فضا ایجاد نشود، هسته تهاجمیتر عمل میکند و مرحلهی دوم، یعنی فرایند تفکیک، آغاز میشود. وجود این حالت برای هسته غیرعادی است و هسته به ازبینبردن یکی از فرایندهای موجود برای دستیابی به فضای کافی در رم بهمنظور اجرای فرایند دیگر نیاز دارد. نکتهی مهم در اینجا آن است که درخواست حافظه احتمالا ازطریق برنامههای Foreground (برنامهای که در آن لحظه در حال اجرا است) انجام شده است. هسته بررسیهای مختلفی را انجام میدهد و درنهایت، تعیین میکند کدامیک از فرایندها گزینهی مناسبتری برای پاکسازی است. برای مثال، اگر بازی Candy Crush چندین روز قبلتر اجرا و بهدلیل بستهنشدن در پسزمینه فعال باشد، هسته با استدلال اینکه کاربر قصد ادامهی آن را ندارد، بازی را از حافظهی رم حذف میکند. بدینترتیب، فضای رم آزاد و برنامهی فعلی اجرا میشود.
تمامی این مراحل را یکی از درایورهای کرنل با نام Low Memory Killer، بهمعنی قاتل حافظهی کم، انجام میدهد؛ اما نسخههای آیندهی اندروید کمی متفاوتتر عمل خواهند کرد. با وجود عملکرد یکسان، درایوری با نام قاتل حافظهی کم وجود نخواهد داشت. در جدیدترین تغییر، Linux Kernel 4.12 فاقد درایور Low Memory Killer است و درعوض درایوری با نام Low Memory Killer Daemon، در بخش فضای کاربری عمل تفکیک را انجام خواهد داد. این بدینمعنی است که هنگام اجرای برنامهی جدید، برنامههای قدیمیتر موجود در حافظه حذف میشوند تا مسیر اجرای برنامهی جدید هموار شود؛ درنتیجه اگر کاربر با استفاده از صفحهی برنامههای اخیر به برنامههای قدیمیتر بازگردد، آنها بهصورت راهاندازی اولیه بارگذاری میشوند.
با آنکه ممکن است این فرایند بیرحمانه بهنظر برسد، سیستمعامل اندروید بدینصورت طراحی شده است. البته پیش از پاکسازی به همهی برنامهها اخطار مفصلی مبنیبر بستهشدن برنامه و ازبینرفتن دادهها درصورت اجرای فرایند ارسال میشود و به کاربران اجازهی ذخیرهسازی اطلاعات آخرین وضعیت برنامه داده میشود. درصورت ذخیرهسازی، با بارگیری مجدد برنامه اطلاعات آخرین وضعیت فراخوانی میشود و درنتیجه، فرایند از نقطهی ذخیرهسازی شده ادامه مییابد.
برنامهها به چقدر حافظهی رم نیاز دارند؟
اگر درایور low memory killer مکررا فعالیت کند، میتواند تجربهی کاربران را بهکلی تحتتأثیر قرار دهد. در بدترین سناریوی ممکن، در هربار حرکت بین برنامهها، اطلاعات برنامهی پیشین پاکسازی میشود تا حافظهی لازم برای اجرای برنامهی دیگر تأمین شود. به چنین وضعیتی a severe low memory condition بهمعنی «شرایط حاد کمبود حافظه» گفته میشود. باوجوداین، مقطع مناسبی نیز وجود دارد که در آن، برنامهی خاص مناسبی حذف میشود تا برنامههای جدید اجرا شوند. تا وقتی برنامههای حذفشده قدیمی باشند، کاربران حتی متوجه پاکسازی نخواهند شد. پس از گذر از نقطهی مناسب، حذف برنامهها تغییر محسوسی روی تجربهی کاربران نخواهد داشت.
برای یافتن آن مقطع مناسب، برنامه و ابزاری طراحی شده است که با استفاده از Android Debug Bridge یا همان ADB، فرایندهای پاکسازیشده و حجم دردسترس از حافظهی رم و حافظهی استفادهشدهی برنامهها را پایش و رصد میکند. Android Debug Bridge برنامهای کلاینتسرور است که در توسعهی نرمافزارهای اندرویدی استفاده میشود.
پس از انجام رصدهای فراوان، درنهایت فهرستی از سه دسته برنامهی مختلف حاصل میشود: در دستهی اول، برنامههای استاندارد درحدود ۱۳۰ تا ۴۰۰ مگابایت از حافظهی رم را استفاده میکنند. برنامههایی نظیر یوتیوب و واتساپ و بازیهایی مانند Crossy Road و Candy Crush در این دسته جای دارند؛ در دستهی دوم، برنامههای متمرکز بر فایلهای چندرسانهای قرار دارند که بهدلیل بارگذاری حجم زیادی از تصاویر، ۴۰۰ تا ۷۰۰ مگابایت از حافظهی رم را درگیر میکنند. برنامههایی چون گوگل فوتوز و اینستاگرام در ردیف برنامههای رسانهای هستند؛ در دستهی سوم، برنامهها و بازیهای حجیم و سنگینی نظیر مرورگر گوگل کروم و Need for Speed: No Limits و PUBG Mobile قرار دارند که بیش از ۷۰۰ مگابایت از حافظهی رم را درگیر میکنند.
حجم حافظهی رم استفادهشده در گوشی هوشمند به برنامههای در حال اجرا بستگی دارد. بهطور مثال، اگر کاربر فقط برنامهی اینستاگرام و بازی Candy Crush را اجرا کند، یک گیگابایت حافظهی رم بهراحتی کفایت خواهد کرد؛ اما اگر در حال اجرای مداوم PUBG و Asphalt 9 باشد، به دو گیگابایت رم نیاز خواهد داشت.
گوشی هوشمند شما چقدر حافظهی رم دارد؟
هر گوشی هوشمند اندرویدی با حجم ثابتی از حافظهی رم روانهی بازار میشود. رم بخشی از مادربرد گوشی است؛ بنابراین، امکان بهروزرسانی در این سختافزار وجود ندارد. پیکسل ۳ از چهار گیگابایت، نسخهی ۱۲۸ گیگابایتی گلکسی نوت ۹ از شش گیگابایت، وانپلاس ۶ تی از هشت گیگابایت، نسخهی مکلارن وانپلاس ۶ تی از ده گیگابایت و لنوو زد ۵ پرو جیتی از دوازده گیگابایت رم برخوردار هستند. بااینهمه، اطلاع از حافظهی رم در دسترس برای اجرای برنامهها نیز بسیار مهم است. سیستمعاملهای اندروید و لینوکس و برخی از سرویسهای کاربری، مقداری از حافظهی رم را اشغال میکنند. در جدول زیر، حافظهی رم و رم دردسترس در تعدادی از گوشیهای هوشمند نشان داده شده است. حافظهی دردسترس به مقداری از حافظهی رم گوشی هوشمند گفته میشود که بدون نیاز به فرایند مبادلهسازی دردسترس است.
هواوی میت ۸ و پیکسل ۳ ایکس ال و گلکسی نوت ۸ درحدود ۵۰ درصد از رم نصبشده را دردسترس برنامههای کاربر قرار میدهند. این حجم در نوت ۹ و وانپلاس ۶ تی کمی بیشتر و درحدود ۶۶ درصد است. نکتهی مهم دیگر انتخاب میزان متفاوت zRAM بهواسطهی تولیدکنندگان اصلی قطعات است. میت ۸ از ۰/۵ گیگابایت فضای مبادلهسازی در زمان پربودن حافظهی رم بهره میبرد؛ درحالیکه این فضا در نوت ۸ به رقم چشمگیر ۲/۵ گیگابایت میرسد. وانپلاس نیز رم هشت گیگابایتی ۶ تی را کافی دانسته و حافظهای برای مبادلهسازی در نظر نگرفته است.
گوشی هوشمندی مانند پیکسل ۳ ایکس ال بدون مبادلهسازی میتواند درحدود پنج برنامهی استاندارد را در حافظهی رم خود جای دهد. این بدینمعنی است که کاربران میتوانند بهطور مثال در میان برنامههای یوتوب و واتساپ و اسپاتیفای و بازی کندی کراش و فروشگاه گوگلپلی بدون نگرانی جابهجا شوند. در این حالت، در زمان اجرای برنامههای جدید این گوشی در تلاش برای آزادسازی حافظه، از فضای فشردهسازی مختص فرایند مبادلهسازی استفاده میکند. با این اوصاف، درحقیقت کاربران میتوانند هشت برنامهی استاندارد را اجرا و در حافظهی رم و فضای مبادلهسازی قرار دهند. جابهجایی به برنامهای که به فضای مبادلهسازی انتقال یافته است، آن را به حافظهی رم بازمیگرداند. فرایند مبادلهسازی سریع است و آنچنان محسوس نیست و اغلب پردازشی که در پسزمینه در حال اجرا است، زودتر به فضای مبادلهسازی منتقل میشود. اگر کاربر بیش از هشت برنامهی استاندارد را آغاز کند، یکی از برنامههای پیشین از حافظه حذف خواهد شد؛ اما حذفشدن برنامه از حافظه را نیز نمیتوان فاجعه دانست؛ چراکه با جابهجایی دوباره، برنامهی حذفشده از نو اجرا خواهد شد. بااینحال طبق چنین استدلالی، گوشیهای هوشمندی با قیمت مشابه پیکسل ۳ باید حافظهی رم بیشتری داشته باشند.
گوشیهای هوشمند ۶ گیگابایتی میتوانند میان ۱۰ یا بیش از ۱۰ برنامهی در حال اجرا، شامل برنامههای سنگین، بدون حتی یک بارگذاری مجدد جابهجایی ایجاد کنند. این حجم از حافظهی رم اشغالشده آغاز نقطهی مناسبی است که در ابتدا به آن اشاره شد. برنامههای متداول مدت زیادی در حافظه باقی میمانند و اغلب اوقات، تجربهی اجرای چندین برنامه بهصورت چندوظیفهای یکپارچه و بدون تغییر مهم است.
تا این برهه، کاربران میتوانند حداقل ۱۰ برنامه را مانند PUBG و Google Photo بدون بارگیری مجدد در حافظهی رم نگهداری کنند. جابهجایی میان برنامهها بهصورت یکپارچه است و با گذشت زمان برنامههای قدیمیتر از حافظه حذف میشوند تا راه برای اجرای برنامههای جدید هموار شود. دراینصورت، احتمالا کاربر چندین روز با برنامههای حذفشده در تماس نبوده است و این بخش پایانی نقطهی مناسب است. وانپلاس ۶ تی با وجود داشتن رم هشت گیگابایتی، فاقد فضای مبادلهسازی است؛ بنابراین، تشخیص تفاوت میان گوشی هوشمند شش گیگابایتی بههمراه فضای مبادلهسازی و گوشی هشت گیگابایتی فاقد این فضا، برای کاربران عادی دشوار خواهد بود.
در این مطلب، سعی شد فضای مبادلهسازی بسیار ساده توضیح داده شود. گمانهزنی دربارهی فضای مبادلهسازی و تعویضی آسان است که فقط در زمان خالیشدن حافظه استفاده میشود؛ اما درحقیقت این فرایند بسیار پیچیدهتر و پویاتر است.
بیش از هشت گیگابایت حافظهی رم
حتی با وجود تنها سه گیگابایت رم در گوشیهای هوشمندی مانند هواوی میت ۸، هیچ بحثی دربارهی برنامههای اجراشدنی در دستگاههای مذکور وجود ندارد. تمام آنچه در این مقاله بررسی شد، تعداد برنامههایی است که بهصورت عمومی در حافظهی رم جای میگیرند. چهار گیگابایت رم برای گوشی هوشمند بسیار مناسب و شش گیگابایت بسیار عالی است؛ ولی هشت گیگابایت را میتوان غیرمنطقی خواند و ۱۰ و ۱۲ و ۱۶ گیگابایت حافظهی رم بیش از نیاز کاربران است.
نتیجهگیری
یقینا در آینده نیز محصولاتی با بیش از هشت گیگابایت رم عرضه خواهند شد؛ ولی عرضهی چنین محصولاتی بهمعنی ضروریبودن این ویژگی نیست. نگارنده امیدوار است مصرفکنندگان تمامی گوشیهای هوشمند دارای بیش از هشت گیگابایت حافظهی رم را تحریم کنند؛ اما این امیدواری کمی دور از ذهن است. برخی اوقات، سازندگان بهدلایل دیگری مانند افزایش کارایی حافظهی رم گوشی را نیز افزایش میدهند. امید آن است این تولیدکنندگان نیز توجه خود را روی سایر اجزای گوشیهای هوشمند معطوف کنند.
منبع: zoomit
بدون دیدگاه