Накладные расходы (вычисления) - Википедия - Overhead (computing)

В Информатика, накладные расходы представляет собой любую комбинацию избыточного или косвенного времени вычислений, памяти, пропускной способности или других ресурсов, которые требуются для выполнения определенного задача. Это частный случай инженерные накладные расходы. Накладные расходы могут быть решающим фактором при разработке программного обеспечения в отношении структуры, исправления ошибок и включения функций. Примеры вычислительных накладных расходов можно найти в функциональное программирование[нужна цитата ], передача данных и структуры данных.

Разработка программного обеспечения

Выбор реализации

Программист / инженер-программист может выбирать из нескольких алгоритмы, кодировки, типы данных или же структуры данных, каждый из которых имеет известные характеристики. При выборе среди них также следует учитывать соответствующие накладные расходы.

Компромиссы

В программная инженерия накладные расходы могут повлиять на решение, включать ли функции в новые продукты или исправлять ошибки. Функция с высокими накладными расходами может не быть включена - или для этого потребуется большой финансовый стимул. Часто, даже если поставщики программного обеспечения хорошо осведомлены об ошибках в своих продуктах, их исправление не стоит вознаграждения из-за накладных расходов.

Например, неявная структура данных или же лаконичная структура данных может обеспечить небольшие накладные расходы на пространство, но за счет низкой производительности (компромисс между пространством и временем).

Сложность выполнения программного обеспечения

Алгоритмическая сложность обычно определяется с помощью Обозначение Big O. Здесь не комментируется, сколько времени что-то нужно для запуска или сколько памяти оно использует, но как его увеличение зависит от размера ввода. Накладные расходы умышленно не является частью этого расчета, поскольку оно меняется от одной машины к другой, в то время как основное время работы алгоритма - нет.

Это следует противопоставить алгоритмическая эффективность, который учитывает все виды ресурсов - сочетание (хотя и не тривиальное) сложности и накладных расходов.

Примеры

Компьютерное программирование (время выполнения и вычислительные затраты)

Вызов функция вводит небольшие накладные расходы времени выполнения. Иногда компилятор может минимизировать эти накладные расходы, встраивание что-нибудь из этого вызовы функций.

Кеши ЦП

В Кеш процессора, "размер кеша" (или емкость) относится к тому, сколько данных тайник магазины. Например, «кэш 4 КБ» - это кеш, в котором хранится 4 КБ данных. «4KB» в этом примере исключает накладные биты такие как информация о кадре, адресе и теге.[1]

Связь (накладные расходы на передачу данных)

Надежно отправив полезная нагрузка передачи данных по сети связи требует отправки не только самой полезной нагрузки. Он также включает в себя отправку различных данных управления и сигнализации (TCP ) необходимо для достижения пункта назначения. Это создает так называемый накладные расходы протокола поскольку дополнительные данные не вносят вклад в истинное значение сообщения.[2][3]

В телефония, набор номера и время установления связи накладные расходы. В 2-ходовой (но полудуплекс ) радио, использование "over" и других сигналов, необходимых для предотвращения столкновения это накладные расходы.

Накладные расходы протокола могут быть выражены в процентах от неприложений. байты (протокол и кадровая синхронизация ), деленное на общее количество байтов в сообщении.

Кодировки и структуры данных (накладные расходы на размер)

В кодирование информации и данных тоже приводит к накладным расходам. Дата и время "2011-07-12 07:18:47" можно выразить как Время Unix с 32-битным подписанный целое число 1310447927, потребляя всего 4 байты. Представлен как ISO 8601 форматированный UTF-8 закодированный нить 2011-07-12 07:18:47 дата будет занимать 19 байтов, что на 375% больше по сравнению с двоичным целочисленным представлением. В качестве XML эта дата может быть записана следующим образом с дополнительными затратами в 218 символов, добавляя семантический контекст, что это ИЗМЕНЕНИЕ с индексом 1.

   <?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>

349 байтов, полученные из XML-кода в кодировке UTF-8, соответствуют размеру накладных расходов на 8625% по сравнению с исходным целочисленным представлением.

Смотрите также

Рекомендации

  1. ^ Сорин, Дэниел Дж. (2009). «Кэши и иерархии памяти» (PDF). Получено 13 марта, 2019. Презентация для курса компьютерной архитектуры.
  2. ^ Общие проблемы производительности в сетевых приложениях. Часть 1: Интерактивные приложения., Технические статьи о Windows XP, Microsoft
  3. ^ Издержки протокола в сетях IP / ATM, Миннесотский суперкомпьютерный центр