بازاریابی سیاسی

آخرين مطالب

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

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

  بزرگنمايي:

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

کیفیت خروجی زبان‌های برنامه‌نویسی، بسته به نوع آن‌ها و حتی مهارت برنامه‌نویس، با هم تفاوت دارد. مصرف برق، یکی دیگر از فاکتورهای دخیل در کارایی سیستم‌عامل‌ها است که برخی اوقات، دست‌کم گرفته می‌شود. اکنون این سؤال ایجاد می‌شود که آیا مصرف انرژی، نشان‌دهنده‌ی کیفیت یک زبان برنامه‌نویسی هست یا خیر؟ گروهی متشکل از محققان 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

ساير مطالب

شیائومی، گوشی‌های هوشمند ردمی Y3‌ و ردمی 7 را معرفی کرد

ایرپاد 3 با ویژگی حذف نویز تا پایان سال جاری به بازار عرضه می‌شود

جان مک‌ آفی هویت خالق بیت‌ کوین را افشا می‌کند

بهترین بازی های اندروید رایگان فروردین 1398

خرید با بیت کوین از آمازون؛ آیا توسعه‌دهنده‌ها از این قابلیت راضی هستند؟

روانشناسی پشت رفتارهای غیراخلاقی

اپل هر ماه 30 میلیون دلار به آمازون پرداخت می‌کند

مشخصات و تصاویری از دو APU نسل سوم رایزن AMD افشا شد

اوپو رینو ، اوپو رینو 10 ایکس زوم و اوپو رینو 5G در بازارهای جهانی عرضه می‌شوند

سیستم e-CVT تویوتا؛ جدیدترین فناوری جعبه‌دنده‌های ضریب متغیر

راهنمای اخذ ویزای چین برای ایرانیان

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

شبیه‌سازی کامل یک ژن در سطح اتم برای نخستین بار در جهان

بهره‌گیری از حس سرکشی نوجوانان برای مبارزه با کارزار تبلیغاتی غذای ناسالم

اپل صفحه‌کلید معیوب مک بوک‌ را در 24 ساعت تعمیر می‌کند

کاوشگر اینسایت ناسا نخستین مریخ لرزه احتمالی را شناسایی کرد

امکان جست‌وجوی ایستگاه‌های شارژ خودرو الکتریکی به گوگل مپ اضافه شد

ادعای افزایش قیمت برق دراثر گسترش منابع بادی و خورشیدی

فعالیت ضدتوموری کورکومین در سرطان معده

ویوو Y17 به‌صورت رسمی در هند معرفی شد

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

وانت فورد F-150 RTR معرفی شد

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

آیا زمستان طولانی بازی تاج و تخت به واقعیت تبدیل خواهد شد؟

آیپد احتمالا در iOS 13 از موس پشتیبانی خواهد کرد

هواوی Y5 2019 با پردازنده مدیاتک در سه رنگ رونمایی شد

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

داستان برند تویوتا؛ بزرگ‌‌ترین خودروساز جهان

بازدید رئیس فراکسیون فضای مجازی از اسنپ

سه تجربه غیرتوریستی که در سفر به مالزی نباید از دست بدهید

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

آموزش اسکرام؛ قسمت پنجم: نقش‌ها

شغل عکاسی در میان بدترین مشاغل سال 2018

روز زمین 2019؛ تصاویر شگفت‌‌انگیز ناسا از سیاره دوست‌‌داشتنی‌مان

موتورسیکلت، قربانی جنگ تجاری آمریکا و اروپا خواهد شد؟

شرایط تحصیل در خارج از کشور

خداحافظی سامسونگ و ال‌ جی از بازار ایران تکذیب شد

مهارت‌های کلیدی برای پیشرفت در ده سال آینده

میزو 16s معرفی شد؛ تراشه اسنپدراگون 855 و دوربین دوگانه 48 مگاپیکسلی

چگونه چاقی و مقاومت به انسولین موجب اختلال در عملکرد شناختی مغز می‌شوند

کارت گرافیکی 150 دلاری GTX 1650 انویدیا پا به بازار سخت‌افزار گذاشت

تولید پراید به پایان خواهد رسید

فیزیک ناممکن؛ چرا هنوز هیچ ماشینی با حرکت دائمی وجود ندارد؟

لودینگ 49: آیتم‌های شفابخش کشنده، Days Gone و پیشبینی اتفاقات سال 2019

هر آنچه باید در مورد هواپیمایی سپهران بدانید

تسلا از بهترین تراشه‌ جهان برای خودروهای خودران رونمایی کرد

کلاس آیلتس در موسسه گات

شکایت یک میلیارد دلاری یک نوجوان از اپل پس از بازداشت اشتباه

چرا قدرت شنوایی افراد نابینا بیشتر است؟

چه بلایی بر سر کپسول کرو دراگون اسپیس ایکس آمده است؟