پایگاه خبری تحلیلی آریا جوان

آخرين مطالب

کدام زبان برنامه‌نویسی انرژی کمتری مصرف می‌کند؟ فناوري

کدام زبان برنامه‌نویسی انرژی کمتری مصرف می‌کند؟

  بزرگنمايي:

آریا جوان - برای مقاصد و کاربردهای گوناگون کاربران و متخصصان، زبان‌های برنامه‌نویسی مختلفی وجود دارد که در زمینه‌های گوناگون و حتی مصرف برق، با هم تفاوت دارند.

کیفیت خروجی زبان‌های برنامه‌نویسی، بسته به نوع آن‌ها و حتی مهارت برنامه‌نویس، با هم تفاوت دارد. مصرف برق، یکی دیگر از فاکتورهای دخیل در کارایی سیستم‌عامل‌ها است که برخی اوقات، دست‌کم گرفته می‌شود. اکنون این سؤال ایجاد می‌شود که آیا مصرف انرژی، نشان‌دهنده‌ی کیفیت یک زبان برنامه‌نویسی هست یا خیر؟ گروهی متشکل از محققان 3 دانشگاه مختلف در پرتقال، سال گذشته‌ی میلادی تحقیقی را برای پاسخ به سؤال فوق انجام دادند که منجر به مقاله‌ای به‌نام Energy Efficiency Across Programming Languages شد. آن‌ها آزمایش خود را روی 10 مسئله‌ی نرم‌افزاری بین 27 زبان برنامه‌نویسی انجام دادند و در حین اجرای نرم‌افزار حاصل، مقدار مصرف برق هریک از آن‌ها را بررسی کردند. به‌علاوه، سرعت و مقدار اشغال حافظه‌ی رم نیز مورد بررسی قرار گرفت.
مقاله‌های مرتبط:
زبان‌ های برنامه‌ نویسی آینده و کسب‌و‌کار برنامه‌نویسی اینفوگرافیک: کدام زبان برنامه‌نویسی برای شما مناسب است؟
محققان پروژه‌ی تحقیقاتی، 10 مسئله‌ی آزمایشی را در سرویس Computer Language Benchmark Game اجرا کردند. آن سرویس، یک پروژه‌ی نرم‌افزاری آزاد است که برای مقایسه‌ی کارایی زبان‌های برنامه‌نویسی استفاده می‌شود و تعدادی مسئله‌های الگوریتمی در خود دارد. به‌علاوه، فریمورکی برای اجرای آزمایش‌ها نیز به کاربر عرضه می‌شود. سرویس مورد استفاده، قبلا به‌نام The Great Computer Language Shootout شناخته می‌شد. محققان اعتقاد دارند استفاده از سرویس بنچمارک ، به آن‌ها امکان داد تا تعدادی برنامه‌ی قابل‌ مقایسه و توسعه‌یافته را در دسترس داشته باشند. به‌علاوه، سرویس، نسخه‌های مختلف کامپایلر و راهکارهای متعدد اجرا را نیز در اختیار آن‌ها قرار می‌داد. پیاده‌سازی انواع مختلف بنچمارک، برای آزمایش کارایی و مصرف برق، حیاتی بود. درواقع، نتایج آزمایش‌ها بسته به نوع تست، تغییر می‌کرد و باید گستره‌ای جامع مورد آزمایش قرار می‌گرفت. به‌عنوان مثال، زبان برنامه‌نویسی C از لحاظ کلی، سریع‌ترین زبان با مصرف بهینه‌ی برق بود، اما در آزمایشی شامل اسکن پایگاه داده‌ی DNA برای یافتن ژنتیک خاص، زبان Rust نتایج بهتری داشت و C در رتبه‌ی سوم مصرف انرژی قرار گرفت. در همان آزمایش DNA، انتخاب بهترین زبان، به معیارهای آزمایش نیز بستگی داشت. در معیار سرعت، C پس از Rust در رتبه‌ی دوم قرار گرفت، اما در معیار اشغال حافظه‌ی رم، Rust سقوطی 9 پله‌ای داشت. زبان فورترن، در بررسی براساس معیار مصرف انرژی، رتبه‌ی دوم را داشت، اما با مرتب کردن نتایج براساس زمان مورد نیاز برای اجرای فرایند،6 پله سقوط کرد.
جدول کامل مقایسه‌ی زبان‌های برنامه‌نویسی براساس زمان، انرژی و اشغال حافظه‌ی رم محققان در مقاله‌ی خود تأکید کردند که با دقت از راهنمای استاندارد سرویس CLBG در انتخاب نسخه‌ی کامپایلر برنامه‌ها و روندهای بهینه‌سازی، پیروی کردند. مصرف برق هر آزمایش نیز توسط ابزاری از اینتل به‌نام Running Average Power Limit استفاده شد. برای بهینه‌سازی نتایج و محاسبه‌ی بهتر میانگین، همچنین خارج کردن فاکتورهایی همچون کش یا سریع‌تر بودن در اجرای اولیه،‌ هر آزمایش 10 بار تکرار شد. به‌همین دلیل، محققان ادعا می‌کنند که نتایج، قابل اعتماد هستند. سخت‌افزار و سیستم‌عامل همه‌ی زبان‌ها در آزمایش، یکسان بود
فاکتور دیگری که برای بهینه‌سازی نتایج تنظیم شد، سیستم‌عامل و سخت‌افزار مورد استفاده بود. همه‌ی آزمایش‌ها روی دستگاهی با 16 گیگابایت رم، پردازنده‌ی اینتل Core i5 3.20 GHz Haswell و سیستم‌عامل لینوکس اوبونتو سرور با کرنل نسخه‌ی 4.8.0 انجام شد. درنهایت، نتایج تحقیقات، موارد قابل توجهی را روشن کرد. به‌عنوان مثال: زبان Lisp، به‌طور میانگین 2.27 برابر C انرژی مصرف می‌کند (131.34 ژول). به‌علاوه، در مقایسه با پاسکال، 2.44 برابر برای اجرای یک برنامه، زمان نیاز دارد (4926.99 میلی ثانیه) و همچنین، 1.92 برابر حافظه‌ی رم نیاز دارد (126.64 مگابیت). محققان، نتایج را بین زبان‌های کامپایل شده و تفسیر شده هم بررسی کردند. به‌علاوه، دسته‌بندی مجزایی هم برای زبان‌های اجرا شده در ماشین‌های مجازی، در مقاله افزوده شد. دسته‌بندی‌های دیگر در مقاله، شامل مقایسه‌ی پاردایم‌های مختلف برنامه‌نویسی همچون انواع شیٔ‌گرا و اسکریپتی می‌شود.
مقایسه‌ی زمان و انرژی مصرفی آیا سرعت به‌معنای مصرف انرژی کمتر است؟
مقاله‌ی منتشر شده، به‌طور جدی با نظریه‌ی تأثیر سرعت بر کاهش مصرف انرژی مخالفت کرد. در متن مقاله آمده بود که محاسبه‌ی انرژی مصرفی، فرمولی فیزیکی شبیه به E=T*P نیست که انرژی را به زمان وابسته کند. بخشی از دلیل تناقض نیز، مصرف انرژی به‌صورت غیرمنظم است. درواقع، نرخ ثابتی برای مصرف انرژی یک زبان برنامه‌نویسی، وجود ندارد. درنتیحه، نتایج تحقیق مذکور می‌تواند یافته‌های محققان پیشین و نظریه‌های آن‌ها پیرامون تأثیر سرعت بر مصرف انرژی را تحت تأثیر قرار دهد. در یکی از آزمایش‌های صورت گرفته، برنامه‌‌ی نوشته شده در زبان Chapel، نسبت به برنامه‌ای به زبان پاسکال، 55 درصد زمان کمتری برای اجرا نیاز داشت. درحالی‌که برنامه‌ی زبان پاسکال، انرژی کمتری (به میزان 10 درصد) مصرف کرد. درنهایت با وجود آن که بسیاری، هنوز سرعت را با مصرف انرژی مرتبط می‌دانند، محققان مذکور در مقاله‌ی خود به‌روشنی اعلام کردند که «یک زبان برنامه‌نویسی سریع‌تر، لزوما مصرف انرژی کمتری ندارد». سرعت بیشتر لزوما به‌معنای مصرف پایین‌تر انرژی نیست
پاسخ دادن به سؤال این بخش، دشواری‌های زیادی دارد، چرا که مصرف انرژی، به فاکتورهای بسیار متعددی وابسته می‌شود که از آن میان می‌‌توان به کامپایلر و حتی کتابخانه‌‌های مورد استفاده اشاره کرد. محققان در بخش مهم دیگری از مقاله‌ی خود، منبع مصرف انرژی برنامه‌ها را نیز بررسی کردند. آن‌ها می‌گویند که اکثر برق مصرفی (حدود 88 درصد) توسط CPU مصرف می‌شود و ارتباطی هم به کامپایل شدن، تفسیر شدن یا اجرا روی ماشین‌های مجازی ندارد. البته، برنامه‌های تفسیر شده، نتایج متفاوتی را در شرایط مختلف نشان دادند و بازه‌ی تنوع آن‌ها از 81.57 درصد تا 92.9 درصد، تفاوت داشت.
مقایسه براساس اشغال حافظه‌ی رم نتیجه‌ی مهم دیگر در تحقیقات مذکور، وابستگی اوج استفاده از DRAM را به انرژی مصرفی، نقض کرد. به‌هرحال، با وجود تمامی یافته‌های بالا، پاسخی تقریبا مثبت به سؤال این بخش داده می‌شود. در مقاله‌ی منتشر شده برای این تحقیق می‌خوانیم: 5 زبان برنامه‌نویسی اول براساس مصرف انرژی، در دسته‌بندی براساس زمان اجرای برنامه‌ها نیز با تفاوت‌هایی جزئی در همان رتبه‌ها قرار می‌گیرند. از میان 10 مسئله‌ی آزمایشی انجام شده، در 9 عدد از آن‌ها، بالاترین امتیاز از لحاظ سرعت و بازدهی، از زبان‌هایی به‌دست آمد که بین 3 مورد برتر از لحاظ مصرف انرژی قرار داشتند. در بخش دیگری از مقاله گفته شد: باور عمومی بر آن است که 3 زبان برتر برنامه‌نویسی یعنی C و ++C و Rust، به‌بهترین نحو بهینه‌سازی شده و بازدهی بالایی دارند. داده‌های ما در تحقیقات نیز همین باور عمومی را تصدیق می‌کنند. با وجود گفته‌های بالا، وقتی زبان‌های برنامه‌نویسی دیگر را طبق فاکتورهای سرعت و مصرف انرژی مرتب کنیم، نتایج برابری مشاهده نمی‌شود. تنها 4 زبان، رتبه‌بندی برابری در فهرست زمان و مصرف انرژی داشتند (OCaml، Haskel، Racket و Python).
دسته‌بندی براساس پارادایم‌های برنامه‌نویسی مزایای زبان‌های کامپایل شده
یکی از نتایج جالب و مهم آزمایش‌ها، درباره‌ی زبان‌های برنامه‌نویسی کامپایل شده بود. آن زبان‌ها، همیشه در بازدهی انرژی و سرعت، بالاتر از سایر تصور می‌شوند. نتایج مقاله نیز تاحدودی آن تصورات را تأیید کرد. به‌‌طور میانگین، زبان‌های کامپایل شده، 120 ژول انرژی برای اجرای راهکارهای نرم‌افزاری مصرف کردند، درحالی‌که زبان‌های اجرا شده روی ماشین مجازی یا تفسیری، به‌ترتیب 576 و 2365 ژول انرژی نیاز داشتند. در مقایسه‌ی زمان‌های اجرای برنامه‌ها، زبان‌های کامپایل شده باز هم نتایج مثبتی نشان دادند. در نتایج آن بخش گفته شد که زبان‌های کامپایل شده به‌صورت میانگین 5103 میلی‌ثانیه زمان نیاز داشتند. درحالی‌که، زبان‌های اجرا شده روی ماشین های مجازی عدد 20623 میلی‌ثانیه را برای زمان نشان دادند و همین مقدار، برای زبان‌های تفسیری به 87614 میلی‌ثانیه رسید. درنهایت، 4 عدد از 5 زبان برتر هر 2 دسته‌بندی زبان‌های کامپایل شده بودند و تنها جاوا، مثال نقض فهرست‌ها بود. زبان‌های کامپایل شده هم از لحاظ زمان و هم انرژی، بازدهی بیشتری داشتند
در میان زبان‌های برنامه‌نویسی با کمترین سرعت، 5 زبان کند فهرست، نمونه‌های تفسیری یعنی Lua، Python، Perl، Ruby و Typexcript بودند. به‌علاوه، زبان‌های با بیشترین نرخ مصرف انرژی نیز از همان نوع بودند: Perl، Python، Ruby، JRuby و Lua. البته، در نوعی از برنامه‌نویسی که عبارت‌ها به‌صورت ساده‌سازی شده در زبان‌های تفسیری استفاده شدند، 3 عدد از آن‌ها، Typescript، JavaScript و PHP در میان برترین زبان‌های با بازدهی انرژی بالا قرار داشتند. زبان‌های کامپایل شده، در مقایسه‌ی میزان اشغال فضای رم، مانند زمان و مصرف انرژی، بالاترین رتبه‌ها را به خود اختصاص دادند. به‌صورت میانگین، آن زبان‌ها به 125 مگابیت حافظه نیاز داشتند و زبان‌های اجرا شده در ماشین‌های محازی، 285 مگابیت حافظه اشغال می‌کردند. زبان‌های تفسیری در این بخش نیز امتیاز پایینی داشته و به 426 مگابیت حافظه‌ی رم نیاز داشتند. آن زبان‌ها، در رتبه‌بندی اشغال فضای رم، پایین‌ترین رتبه‌ها را به خود اختصاص دادند که به‌عنوان مثال می‌توان JRuby، Dart، Lua و Perl را مثال زد. زبان دیگر در میان پایین‌ترین نمونه‌ها از لحاظ اشغال فضای رم، Erlang بود که البته، زبانی تفسیری نیست.
از لحاظ پارادایم‌های برنامه‌نویسی، زبان‌های دستوری (Imperative) به 116 مگابیت حافظه‌ی رم نیاز دارند. زبان‌های شیٔ‌‌گرا همان آزمایش‌ها را با 249 مگابیت، زبان‌های تابعی با 251 مگابیت و زبان‌های اسکریپتی با 421 مگابیت حافظه‌ی رم، انجام می‌دهند. درواقع، زبان‌های دستوری در دسته‌بندی‌های دیگر همچون سرعت و مصرف انرژی نیز رتبه‌های بهتری را به‌خود اختصاص دادند. در مقایسه‌ی پارادایم‌های برنامه‌نویسی، فاکتورهای متعددی باید مورد بررسی قرار گیرند. کاملا مشخص است که پارادایم‌ها و حتی زبان‌های هر پاردایم، تأثیرات متفاوتی روی مصرف انرژی، زمان و حافظه‌ی مورد نیاز دارند. به‌همین دلیل، اینکه کدام فاکتور برای نتیجه مهم‌تر باشد، به برنامه‌نویس و پروژه‌ی در دست اجرای او بستگی دارد. برخی از پروژه‌های نرم‌افزاری، نیازمند درنظرگرفتن هم‌زمان 2 یا چند فاکتور هستند. به‌عنوان مثال، شاید انرژی و زمان اجرا، در پروژه‌‌ای اهمیت بالا داشته باشد. در چنان موردی، C بهترین گزینه خواهد بود چون در هر 2 بخش، در صدر جدل قرار دارد. در نمونه‌ای دیگر که زمان درکنار مصرف کمتر حافظه‌ی رم، هدف شما باشد، زبان‌های C، Pascal و Go انتخاب‌های مناسبی هستند. اگر هر 3 مورد بالا یعنی زمان، انرژی و حافظه‌ی رم برای شما اهمیت دارند، باز هم محققان همان 3 زبان فوق را پیشنهاد می‌دهند. در پایان مقاله، محققان اعلام کردند که در بررسی‌های آتی، تأثیر گذر زمان بر اشغال حافظه‌ی رم را بررسی خواهند کرد. نتایج کامل تحقیقات انجام شده، در لینک منبع موجود است و علاقه‌مندان می‌توانند برای بررسی‌های عمیق‌تر، از آن استفاده کنند. به‌عنوان مثال، توسعه‌دهنده‌های حوزه‌ی اینترنت اشیاء یا زمینه‌های مشابه، می‌توانند با بررسی نتایج، زبان‌هایی با مصرف انرژی پایین‌تر را انتخاب کنند. درنهایت، مقاله‌ی منتشر شده هم برنامه‌نویسان را با ابهام رها می‌کند. محققان می‌گویند که اگر به‌دنبال یک پاسخ ثابت و نسخه‌ای نهایی برای انتخاب زبان برنامه‌نویسی هستید، به پاسخ نخواهید رسید. آن‌ها می‌گویند با وجود اینکه نتایح، برخی زبان‌ها را از لحاظ سرعت و مصرف انرژی بالاتر از سایر قرار می‌دهند، هیچ‌گاه نمی‌توان زبانی را کاملا بهتر از زبان دیگر دانست. درنهایت باید بدانیم که موقعیت و شرایطی که زبان در آن استفاده می‌شود، جنبه‌ای حیاتی در بازدهی مصرف انرژی آن دارد.





نظرات شما

ارسال دیدگاه

Protected by FormShield

ساير مطالب

هیوندای ونیو 2020 رونمایی شد

داستان برند بوش؛ مهندسی آلمانی در خدمت صنعت برق و الکترونیک

هر آنچه باید درباره آپدیت می 2019 یا 19H1، ویندوز 10 بدانید

ترجمه انسانی یا ماشینی؛ رایت می چه پیشنهاداتی برایتان دارد؟

استون مارتین سوپرلجرا DBS 59 رونمایی شد

اینترنت سیم‌کارت‌های شاتل موبایل به مناسبت نیمه شعبان یک هفته رایگان می‌شود

نگاهی به طراحی هیوندای سوناتا 2020

آمازون و گوگل دعوا بر سر یوتیوب را خاتمه دادند

گوگل به دنیای رباتیک باز می‌گردد

پردازنده‌های توکار شرکت AMD سری R1000 رونمایی شد

اپل برای توافق با کوالکام، احتمالا 6 میلیارد دلار به این شرکت پرداخت کرده است

صدای انفجار یک بمب هسته‌‌ای چگونه است؟

اینستاگرام تعداد لایک‌ پست‌ها را مخفی می‌کند

آموزش راه اندازی کسب و کار اینترنتی موفق با میهن وردپرس

نگاهی به کارخانه‌ نوکیا، هر آن‌چه از آینده‌ی تولید انتظار داریم

نگاهی عمیق به آئودی E-Tron

افسانه‌های استارتاپی: نیاز به سرمایه ریسک پذیر

اشتباهات امنیتی جدید فیسبوک، گریبان‌گیر میلیون‌ها کاربر دیگر شد

آشنایی با وبسایت «های‌متال»

رندرهای رسمی گوگل پیکسل 3a و پیکسل 3a XL پیش از موعد رونمایی رویت شد

فروش گلکسی اس 10 طی هفته اول عرضه در آمریکا، رکورد گلکسی اس 9 را شکست

افشای اطلاعات حساس رانندگان یکی از تاکسی‌های اینترنتی ایرانی

میزان فروش آیفون در سه‌ماهه‌ی دوم 2019، کمتر از حدانتظار بوده است

نجات از سیاه‌ چاله؛ امکان‌پذیر، اما خطرناک

هرآنچه درباره استاندارد PCIe 4.0 می‌دانیم

سبک زندگی آینده‌ی سیاره‌ ما را مشخص می‌کند

سوبارو اوتبک مدل 2020 رونمایی شد

دوربین اصلی آیفون 2019 احتمالا به لنز فوق عریض مجهز می‌شود

معرفی کتاب «اول سود» اثر مایک میخالوویچ

خرید گوشی شیائومی در فروشگاه شیراز مارکت

نگاهی عمیق به بی ام و سری 8 کانورتیبل مدل 2019

ساخت کامپیوترهای دوهسته‌ای درون سلول‌های انسانی

همکاری مجدد اپل با کوالکام چه مزایایی برای کاربران دارد؟

مدل 85 اینچ سرفیس هاب 2S مایکروسافت رونمایی شد

دانشمندان مغز خوک‌ها را تا چند ساعت پس از مرگ زنده نگاه داشتند

رزرو هتل قصر طلایی با بیشترین تخفیف در سایت پرشین هتل

حراج فسیل دایناسور تی رکس در eBay، صدای دانشمندان را درآورد

نسل جدید مرسدس بنز GLS معرفی شد

3 موزه مهم ایروان که هر گردشگری در سفر به ارمنستان باید ببیند

استخراج خون از اسبی 42 هزار ساله با هدف شبیه‌سازی آن

گران‌ترین مدل بی ام و سری 7 جدید، 300 هزار دلار قیمت می‌خورد

قیمت فناوری خودران تسلا افزایش می‌یابد

آلودگی هوا چگونه می‌تواند بر سلامت روانی انسان تأثیر بگذارد؟

اپل در حال مذاکره با تامین‌کنندگان حسگر برای خودرو خودران است

فریم نیوز 59: نگاهی به جدیدترین ابعاد از رقابت جدی دیزنی و HBO با نتفلیکس

جزئیات بیشتری از دلایل استعفای بنیان‌گذاران اینستاگرام فاش شد

توانمندسازی تیم‌های تغییرپذیر و تحول‌گرا

کیا هابانیرو در نمایشگاه نیویورک به نمایش گذاشته شد

قیمت رقابتی و تنوع محصولات دیجیتال در فروشگاه بابانو

سفید شدن مرجان‌ها، تهدیدی جدی برای محیط زیست دریا