La sobrecarga en los sistemas informáticos consiste en funciones compartidas que benefician a todos los usuarios o procesos, pero que no son directamente atribuibles a ninguna tarea específica. Por lo tanto, es similar a la sobrecarga en las organizaciones. La sobrecarga del sistema informático se manifiesta como un procesamiento más lento, menos memoria, menos ancho de banda de red o una latencia mayor de la que se esperaría al leer las especificaciones del sistema. [1] Es un caso especial de sobrecarga de ingeniería . La sobrecarga puede 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 características. Se pueden encontrar ejemplos de sobrecarga informática en la programación orientada a objetos (OOP), la programación funcional , la transferencia de datos y las estructuras de datos.
Un programador o 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 costos indirectos.
En ingeniería de software , los gastos generales pueden influir en la decisión de incluir o no características en nuevos productos o, incluso, de corregir errores. Es posible que no se incluya una característica que tenga un alto costo general, o que se necesite un gran incentivo financiero para hacerlo. A menudo, aunque los proveedores de software estén al tanto de los errores en sus productos, la recompensa por corregirlos no vale la pena, debido a los gastos generales.
Por ejemplo, una estructura de datos implícita o sucinta puede proporcionar poca sobrecarga de espacio, pero a costa de un rendimiento lento (compensación espacio/tiempo).
La complejidad algorítmica se especifica generalmente mediante la notación Big O. Esta no hace ningún comentario sobre cuánto tarda algo en ejecutarse o cuánta memoria utiliza, sino cómo su aumento depende del tamaño de la entrada. La sobrecarga no forma parte de este cálculo deliberadamente , 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 debería 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.
La invocación de una función introduce una pequeña sobrecarga en tiempo de ejecución. [2] A veces, el compilador puede minimizar esta sobrecarga incorporando en línea algunas de estas llamadas de función . [3]
En una memoria caché de CPU , el "tamaño de la memoria caché" (o capacidad ) se refiere a la cantidad de datos que almacena una memoria caché . Por ejemplo, una "memoria caché de 4 KB" es una memoria caché que contiene 4 KB de datos. Los "4 KB" en este ejemplo excluyen bits de sobrecarga como información de trama, dirección y etiqueta. [4]
Para enviar de forma fiable una carga útil de datos a través de una red de comunicaciones es necesario enviar algo más que la carga útil en sí. También implica enviar diversos datos de control y señalización ( TCP ) necesarios para llegar al destino. Esto crea una denominada sobrecarga de protocolo , ya que los datos adicionales no contribuyen al significado intrínseco del mensaje. [5] [6]
En telefonía , la marcación de números y el tiempo de establecimiento de la llamada son gastos generales. En radios bidireccionales (pero semidúplex ), el uso de "over" y otras señales necesarias para evitar colisiones es un gasto general.
La sobrecarga del protocolo se puede expresar como un porcentaje de bytes que no son de aplicación (sincronización de protocolo y trama ) dividido por la cantidad total de bytes del mensaje.
La codificación de información y datos también genera sobrecarga. La fecha y hora "2011-07-12 07:18:47" se puede expresar como hora Unix con el entero con signo de 32 bits , consumiendo solo 4 bytes. Representada como cadena codificada 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. 1310447927
2011-07-12 07:18:47
<?xml version="1.0" encoding="UTF-8"?> <datetime qualifier= "changedate" index= "1" > <año> 2011 </año> <mes> 07 </mes> <día> 12 < /día> <hora> 07 </hora> <minuto> 18 </minuto> <segundo> 47 </segundo> </datetime>
Los 349 bytes resultantes del XML codificado en UTF-8 se correlacionan con una sobrecarga de tamaño del 8625 % sobre la representación entera original.
Además de los archivos mismos, los sistemas de archivos de computadora ocupan una parte del espacio para almacenar nombres de directorios y listados, nombres de archivos, ubicaciones de sectores de archivos, atributos como la fecha y hora de la última modificación y creación, cómo se fragmentan los archivos , partes escritas y libres del espacio y un diario en algunos sistemas de archivos.
Muchos archivos pequeños generan más sobrecarga que una pequeña cantidad de archivos grandes.