برخی از اپلیکیشنهای ویندوزی حجم زیادی از رم کامپیوتر را بهخود اختصاصی میدهند و البته راهکاری برای حل این مشکل وجود دارد. با بررسی برنامههایی مثل دیسکورد، اسلک، فیگما و مایکروسافت تیمز در تسکمنیجر ویندوز، مشاهده میکنید که هر کدام با چند پردازش جداگانه، مقدار قابلتوجهی از رم کامپیوتر را اشغال کردهاند. احتمالا در اولین نگاه ویندوز را مقصر میدانید، اما این بار مشکل به سیستمعامل ارتباط ندارد؛ مقصر اصلی فریمورک الکترون (Electron) است که بسیاری از اپلیکیشنهای دسکتاپ محبوب بر پایهی آن ساخته شدهاند و هر کدام، بهجای استفاده از منابع مشترک سیستم، مرورگر کاملی را داخل خودشان حمل میکنند.
این بخش بهصورت خودکار گردآوری شده است. برای مطالعه کامل خبر، به منبع اصلی مراجعه کنید.
به گزارش سایت دیدبان ایران، برخی از اپلیکیشنهای ویندوزی حجم زیادی از رم کامپیوتر را بهخود اختصاصی میدهند و البته راهکاری برای حل این مشکل وجود دارد. با بررسی برنامههایی مثل دیسکورد، اسلک، فیگما و مایکروسافت تیمز در تسکمنیجر ویندوز، مشاهده میکنید که هر کدام با چند پردازش جداگانه، مقدار قابلتوجهی از رم کامپیوتر را اشغال کردهاند. احتمالا در اولین نگاه ویندوز را مقصر میدانید، اما این بار مشکل به سیستمعامل ارتباط ندارد؛ مقصر اصلی فریمورک الکترون (Electron) است که بسیاری از اپلیکیشنهای دسکتاپ محبوب بر پایهی آن ساخته شدهاند و هر کدام، بهجای استفاده از منابع مشترک سیستم، مرورگر کاملی را داخل خودشان حمل میکنند.
در این مطلب توضیح میدهیم الکترون دقیقا چطور کار میکند، چرا مصرف رم آن بالا است، چه تفاوتی با اپهای بومی ویندوز دارد و مهمتر از همه، چه کارهای عملی میتوان برای کاهش مصرف رم آنها انجام داد.
الکترون در واقع ترکیبی از دو تکنولوژی است که بهطور طبیعی قرار نبود کنار هم قرار بگیرند: موتور مرورگر کرومیوم گوگل و Node.js. توسعهدهندگان با این ترکیب میتوانند اپ دسکتاپ را با جاوااسکریپت، HTML و CSS بنویسند؛ یعنی همان تکنولوژیهایی که برای توسعهی وب هم استفاده میشوند و در نتیجه نیازی به نوشتن کد جداگانه برای ویندوز، مک و لینوکس ندارند.
داخل هر اپلیکیشن الکترونی، همیشه حداقل دو نوع پردازش جدا از هم در حال اجرا است:
پردازشهای رندر کننده به دلایل امنیتی از سیستم اصلی ایزوله شدهاند و برای ارتباط با پردازش اصلی باید از لایهی پیامرسانی داخلی عبور کنند، نه اینکه مستقیم به سیستم دسترسی داشته باشند. از طرف دیگر هماهنگ کردن Node.js و کرومیوم روی یک ماشین نیاز به لایهی Threading پشتپرده دارد تا رویدادهای کاملا متفاوت این دو تکنولوژی با هم تداخل پیدا نکنند.
نتیجهی معماری چیزی است که به آن Electron bloat (باد کردن حجم و مصرف منابع الکترون) … …