سربار (محاسبات)
در علوم رایانه، سربار (به انگلیسی: Overhead) ترکیبی از زمان محاسبات اضافی یا غیرمستقیمِ حافظه، پهنای باند یا سایر منابعی است که برای انجام یک وظیفه خاص مورد نیاز است. این یک مورد خاص از سربار مهندسی است. سربار میتواند یک عامل تعیینکننده در طراحی نرمافزار با توجه به ساختار، تصحیح خطا و گنجاندن ویژگیها باشد. نمونههایی از سربار محاسبات را میتوان در برنامهنویسی تابعی، انتقال داده و ساختار داده مشاهده کرد.[۱]
طراحی نرمافزار
[ویرایش]انتخاب اجرا
[ویرایش]یک برنامهنویس/مهندس نرمافزار ممکن است انتخابی از چندین الگوریتم، کدگذاری، نوع داده یا ساختار داده داشته باشد که هر کدام دارای ویژگیهای شناخته شدهای هستند. هنگام انتخاب از بین آنها، سربار مربوط به آنها نیز باید در نظر گرفته شود.
معاوضهها
[ویرایش]در مهندسی نرمافزار، سربار میتواند بر تصمیمگیری در مورد گنجاندن یا عدم استفاده از ویژگیها در محصولات جدید یا رفع اشکالات تأثیر بگذارد. ویژگیای که سربار بالایی دارد، ممکن است کنار گذاشته شود یا برای انجام آن به مشوق مالی زیادی نیاز خواهد بود. اغلب، با اینکه ارائهدهندگان نرمافزار به خوبی از اشکالات موجود در محصولات خود آگاه هستند، اما به دلیل سربار، حل آنها به صرفه نیست.
به عنوان مثال، یک ساختار داده ضمنی یا ساختار داده فشرده ممکن است سربار فضای کمی ایجاد کند، اما عملکرد کندی داشته باشد. (معاوضه فضا/زمان).
پیچیدگی زمان اجرای نرمافزار
[ویرایش]پیچیدگی الگوریتمی بهطور کلی با استفاده از نماد O بزرگ مشخص میشود. این نماد هیچ توضیحی در مورد مدت زمان اجرا یا میزان استفاده از حافظه ندارد، اما چگونگی افزایش آن به اندازه ورودی بستگی دارد. سربار عمداً بخشی از این محاسبه نیست، زیرا از ماشینی به ماشین دیگر متفاوت است، در حالی که زمان اجرای اساسی یک الگوریتم اینطور نیست.
این باید با کارایی الگوریتمی، که همه انواع منابع را در نظر میگیرد، در تضاد باشد.
مثالها
[ویرایش]برنامهنویسی کامپیوتر (زمان اجرا و سربار محاسباتی)
[ویرایش]فراخوانی یک تابع یک سربار زمان اجرای کوچک ایجاد میکند. گاهی کامپایلر میتواند این سربار را با گسترش خطی برخی از این فراخوانی تابع به حداقل برساند.
حافظه نهان CPU
[ویرایش]در حافظه نهان CPU، "اندازه کش" (یا ظرفیت) به مقدار دادهای که یک کش ذخیره میکند اشاره دارد. به عنوان مثال، یک "4 KB cache" کشی است که 4 KB داده را در خود ذخیره میکند. در این مثال، 4 KB بیتهای سربار از قبیل فریم، آدرس و اطلاعات برچسب را نادیده میگیرد.[۲]
ارتباطات (سربار انتقال داده)
[ویرایش]ارسال مطمئن محموله ای از دادهها از طریق یک شبکه ارتباطی مستلزم ارسال دادههایی بیشتر از خود محموله است. همچنین شامل ارسال کنترل و سیگنالینگ دادههای مختلف (TCP) مورد نیاز برای رسیدن به مقصد است. این یک به اصطلاح سربار پروتکل ایجاد میکند، زیرا دادههای اضافی به معنای ذاتی پیام چیزی اضافه نمیکنند.[۳][۴]
در تلفن، شمارهگیری و زمان تنظیم تماس، سربار هستند. در رادیوهای دو طرفه (اما نیمه دوبلکس)، استفاده از "over" و سایر سیگنالهای مورد نیاز برای جلوگیری از برخورد یک سربار است.
سربار پروتکل را میتوان به صورت درصدی از بایتهای غیر کاربردی (همگام سازی پروتکل و فریم) تقسیم بر تعداد کل بایتهای پیام بیان کرد.
کدگذاریها و ساختارهای داده (سربار اندازه)
[ویرایش]رمزگذاری اطلاعات و دادهها نیز سربار را معرفی میکند. تاریخ و زمان "۲۰۱۱-۰۷-۱۲ ۰۷:۱۸:۴۷" را میتوان به شکل زمان یونیکس با عدد صحیح امضا شده ۳۲ بیتی 1310447927
که فقط ۴ بایت مصرف میکند، نمایش داد. در نمایش ISO 8601 با فرمت UTF-8 کد گذاری رشته 2011-07-12 07:18:47
19 بایت مصرف میکند که سربار آن ۳۷۵ درصد بیش از نمایش عدد صحیح باینری است. در نمایش XML، این تاریخ را میتوان به صورت زیر با سربار ۲۱۸ کاراکتر نوشت، در حالی که زمینه معنایی که یک CHANGEDATE با شاخص ۱ است، اضافه شدهاست.[۵]
<?xml version="1.0" encoding="UTF-8"?>
<DATETIME qualifier="CHANGEDATE" index="1">
<YEAR>2011</YEAR>
<MONTH>07</MONTH>
<DAY>12</DAY>
<HOUR>07</HOUR>
<MINUTE>18</MINUTE>
<SECOND>47</SECOND>
</DATETIME>
کدگذاری UTF-8 XML تعداد ۳۴۹ بایت فضا میگیرد که سربار آن نسبت به نمایش عدد صحیح ۸۶۲۵ درصد است.
جستارهای وابسته
[ویرایش]منابع
[ویرایش]- ↑ Denning, Peter (January 2003). "Overhead". Encyclopedia of Computer Science. John Wiley and Sons. pp. 1341–1343. ISBN 978-0-470-86412-8.
- ↑ Sorin, Daniel J. (2009). "Caches and Memory Hierarchies" (PDF). Retrieved March 13, 2019. Presentation for course in Computer Architecture.
- ↑ Common Performance Issues in Network Applications Part 1: Interactive Applications, Windows XP Technical Articles, Microsoft
- ↑ Protocol Overhead in IP/ATM Networks, Minnesota Supercomputer Center
- ↑ "Inline functions (C++)". Microsoft Learn. Microsoft. 22 January 2024. Retrieved 22 March 2024.