Sobrecarga (informática) - Overhead (computing)

En informática , la sobrecarga es cualquier combinación de tiempo de cálculo, memoria, ancho de banda u otros recursos en exceso o indirectos que se requieren para realizar una tarea específica . Es un caso especial de gastos generales de ingeniería . Los gastos generales pueden ser un factor decisivo en el diseño de software, con respecto a la estructura, la corrección de errores y la inclusión de funciones. Se pueden encontrar ejemplos de sobrecarga informática en programación funcional , transferencia de datos y estructuras de datos.

Diseño de software

Elección de implementación

Un programador / ingeniero de software puede elegir entre varios algoritmos , codificaciones , tipos de datos o estructuras de datos , cada uno de los cuales tiene características conocidas. Al elegir entre ellos, también se deben considerar sus respectivos gastos generales.

Compensaciones

En la ingeniería de software , los gastos generales pueden influir en la decisión de incluir o no funciones en nuevos productos o, de hecho, de corregir errores. Es posible que no se incluya una función que tenga una sobrecarga alta, o que necesite un gran incentivo financiero para hacerlo. A menudo, aunque los proveedores de software conocen bien los errores en sus productos, la recompensa de corregirlos no vale la pena, debido a los gastos generales.

Por ejemplo, una estructura de datos implícita o una estructura de datos sucinta pueden proporcionar una sobrecarga de espacio baja, pero a costa de un rendimiento lento (compensación de espacio / tiempo).

Complejidad del software en tiempo de ejecución

Complejidad algorítmica se especifica generalmente usando Big O notación . Esto no hace ningún comentario sobre cuánto tiempo tarda algo en ejecutarse o cuánta memoria usa, pero cómo su aumento depende del tamaño de la entrada. La sobrecarga deliberadamente no forma parte de este cálculo, ya que varía de una máquina a otra, mientras que el tiempo de ejecución fundamental de un algoritmo no lo hace.

Esto debe contrastarse con la eficiencia algorítmica , que tiene en cuenta todo tipo de recursos, una combinación (aunque no trivial) de complejidad y gastos generales.

Ejemplos de

Programación de computadoras (tiempo de ejecución y gastos generales computacionales)

La invocación de una función presenta una pequeña sobrecarga de tiempo de ejecución. A veces, el compilador puede minimizar esta sobrecarga insertando algunas de estas llamadas a funciones .

Cachés de CPU

En un caché de CPU , el "tamaño del caché" (o capacidad ) se refiere a la cantidad de datos que almacena un caché . Por ejemplo, una "caché de 4 KB" es una caché que contiene 4 KB de datos. Los "4 KB" de este ejemplo excluyen los bits de sobrecarga , como la información de la trama, la dirección y la etiqueta.

Comunicaciones (sobrecarga de transferencia de datos)

El envío confiable de una carga útil de datos a través de una red de comunicaciones requiere enviar algo más que la carga útil en sí. También implica el envío de varios datos de control y señalización ( TCP ) necesarios para llegar al destino. Esto crea una sobrecarga de protocolo, ya que los datos adicionales no contribuyen al significado intrínseco del mensaje.

En telefonía , la marcación de números y el tiempo de establecimiento de llamadas son gastos generales. En radios de dos vías (pero semidúplex ), el uso de "over" y otras señales necesarias para evitar colisiones es una sobrecarga.

La sobrecarga del protocolo se puede expresar como un porcentaje de bytes que no son de aplicación (protocolo y sincronización de tramas ) dividido por el número total de bytes en el mensaje.

Codificaciones y estructuras de datos (sobrecarga de tamaño)

La codificación de información y datos también introduce gastos generales. La fecha y hora "2011-07-12 07:18:47" puede expresarse como tiempo Unix con el de 32 bits firmada número entero 1310447927 , el consumo de sólo 4 bytes . Representada como una cadena codificada en UTF-8 con formato ISO 8601, la fecha consumiría 19 bytes, una sobrecarga de tamaño del 375% sobre la representación de entero binario. Como XML, esta fecha se puede escribir de la siguiente manera con una sobrecarga de 218 caracteres, mientras se agrega el contexto semántico de que es un CHANGEDATE con índice 1. 2011-07-12 07:18:47

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

Los 349 bytes, que resultan del XML codificado en UTF-8, se correlacionan con una sobrecarga de tamaño de 8625% sobre la representación entera original.

Ver también

Referencias