В інформатиці накладні витрати () — це споживання обчислювальних ресурсів на виконання операцій, які не пов'язані безпосередньо з досягненням основної мети. Накладні витрати необхідні для забезпечення більш загальних процесів обробки, але вони впливають на ефективність виконання основного завдання. Вони можуть проявлятися у вигляді повільнішої обробки, меншого обсягу доступної пам'яті, меншої ємності сховища, меншої пропускної здатності мережі та більшої затримки. Накладні витрати також можуть впливати на проєктування програмного забезпечення, зокрема на його структуру, механізми виправлення помилок і набір реалізованих функцій.
Накладні витрати в інформатиці мають теж саме значення що і накладні витрати у виробництві.
Компроміс У програмній інженерії програміст може мати вибір між кількома алгоритмами, способами кодування, типами даних або структурами даних, кожен із яких має відомі характеристики. Під час вибору між ними слід також враховувати пов'язані з ними накладні витрати. Часто накладні витрати прибрані з одного компонента системи, збільшуються в інших компонентах системи.
Наприклад, неявна структура даних або лаконічна структура даних може забезпечувати малі накладні витрати на використання пам'яті, але ціною нижчої швидкодії (компроміс між використанням пам'яті та часом виконання).
І навпаки, використанні індексів для таблиці бази даних, збільшує обʼєм даних, але пришвидшує пошук у таблиці (OLAP операції). Хоча він збільшується час на обновлення таблиці (OLTP операції).
Файлова система Файлова система зберігає не лише дані користувача а і метадані: імена файлів, часові мітки, ієрархічну файлову структуру та багато іншого. В загальному, для малих файлів розмір їх метаданих може перевищувати розмір самого файла.
Кеш процесора Кеш процесора — це багаторівнева структура, що дублює зберігання нещодавно використаних даних з памʼяті, або дані які з великою імовірністю будуть використані процесором, для пришвидшення виконання програми.
Комунікаційний протокол В комунікаційних протоколах всі дані які не є корисним навантаженням, є накладними витратами. Вони використовуються для встановлення з'єднання, маршрутизації та контролю помилок.
Кодування даних Кодування даних з накладними витратими, як UTF-8, XML, Base64 застосовуються, щоб задовільними інші вимоги до системи.
Виклик підпрограми Виклик підпрограми має такі накладні витрати: команди збереження параметрів у стек, команда переходу в підпрограму, команда очищення стеку та команда повернення з підпрограми. Копіювання тіла підпрограми замість її виклику прибирає ці витрати, а отже пришвидшує виконання коду, але може збільшити його загальний розмір.
Див. також Трешинг (інформатика)
Примітки