سربار (محاسبات)

در علوم رایانه، **سربار**  ترکیبی از زمان محاسبات اضافی یا غیرمستقیمِ حافظه، پهنای باند یا سایر منابعی است که برای انجام یک وظیفه خاص مورد نیاز است. این یک مورد خاص از سربار مهندسی است. سربار می‌تواند یک عامل تعیین‌کننده در طراحی نرم‌افزار با توجه به ساختار، تصحیح خطا و گنجاندن ویژگی‌ها باشد. نمونه‌هایی از سربار محاسبات را می‌توان در برنامه‌نویسی تابعی، انتقال داده و ساختار داده مشاهده کرد.

## طراحی نرم‌افزار
### انتخاب اجرا
یک برنامه‌نویس/مهندس نرم‌افزار ممکن است انتخابی از چندین الگوریتم، کدگذاری، نوع داده یا ساختار داده داشته باشد که هر کدام دارای ویژگی‌های شناخته شده‌ای هستند. هنگام انتخاب از بین آنها، سربار مربوط به آنها نیز باید در نظر گرفته شود.

### معاوضه‌ها
در مهندسی نرم‌افزار، سربار می‌تواند بر تصمیم‌گیری در مورد گنجاندن یا عدم استفاده از ویژگی‌ها در محصولات جدید یا رفع اشکالات تأثیر بگذارد. ویژگی‌ای که سربار بالایی دارد، ممکن است کنار گذاشته شود یا برای انجام آن به مشوق مالی زیادی نیاز خواهد بود. اغلب، با اینکه ارائه‌دهندگان نرم‌افزار به خوبی از اشکالات موجود در محصولات خود آگاه هستند، اما به دلیل سربار، حل آنها به صرفه نیست.

به عنوان مثال، یک ساختار داده ضمنی یا ساختار داده فشرده ممکن است سربار فضای کمی ایجاد کند، اما عملکرد کندی داشته باشد. (معاوضه فضا/زمان).

### پیچیدگی زمان اجرای نرم‌افزار
پیچیدگی الگوریتمی به‌طور کلی با استفاده از **[[نماد 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
<?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 تعداد ۳۴۹ بایت فضا می‌گیرد که سربار آن نسبت به نمایش عدد صحیح ۸۶۲۵ درصد است.

## جستارهای وابسته
* قانون کمترین قدرت
* ماشین تورینگ جهانی

## منابع

رده:بهینه‌سازی نرم‌افزار
رده:مهندسی نرم‌افزار