Articulo de referencia

Gastos generales (de computación)

En informática , la sobrecarga se refiere al consumo de recursos informáticos para aspectos que no están directamente relacionados con la consecución de un objetivo deseado. La ...

En informática , la sobrecarga se refiere al consumo de recursos informáticos para aspectos que no están directamente relacionados con la consecución de un objetivo deseado. La sobrecarga es necesaria para un procesamiento más general e influye en la consecución de un objetivo más específico. Se manifiesta en aspectos como un procesamiento más lento, menor memoria, menor capacidad de almacenamiento, menor ancho de banda de red y mayor latencia. [ 1 ] La sobrecarga puede afectar al diseño del software en lo que respecta a la estructura, la corrección de errores y la inclusión de funcionalidades.

Los gastos generales en informática son un caso especial de gastos generales de ingeniería y tienen el mismo significado esencial que en los negocios: gastos generales de organización .

Diseño de software

Elección de la implementación

Un programador o ingeniero de software puede elegir entre varios algoritmos , codificaciones , tipos de datos o estructuras de datos , cada uno con características conocidas. Al elegir entre ellos, también se debe considerar su sobrecarga respectiva.

Compensaciones

En ingeniería de software , los costos indirectos pueden influir en la decisión de incluir o no funcionalidades en nuevos productos, o incluso de corregir errores. Una funcionalidad con altos costos indirectos puede no incluirse , o requerir un gran incentivo financiero para hacerlo. A menudo, aunque los proveedores de software son conscientes de los errores en sus productos, el beneficio de corregirlos no compensa el costo debido a dichos costos indirectos. 

Por ejemplo, una estructura de datos implícita o concisa puede ofrecer un bajo consumo de espacio, pero a costa de un rendimiento lento (compensación espacio/tiempo).

Complejidad de ejecución del software

La complejidad algorítmica se suele especificar mediante la notación Big O. Esta notación no indica cuánto tiempo tarda en ejecutarse un algoritmo ni cuánta memoria utiliza, sino cómo su incremento depende del tamaño de la entrada. La sobrecarga no se incluye deliberadamente en este cálculo, ya que varía de una máquina a otra, a diferencia del tiempo de ejecución fundamental de un algoritmo.

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 sobrecarga. 

Ejemplos

metadatos del sistema de archivos

Además del contenido de los archivos, un sistema de archivos utiliza espacio de almacenamiento para información adicional, como metadatos (por ejemplo, el nombre del archivo y la fecha y hora de modificación), organización jerárquica de directorios y mucho más. En general, muchos archivos pequeños requieren más espacio de almacenamiento que un número menor de archivos grandes.

metadatos de la caché de la CPU

En una caché de CPU , la capacidad es la cantidad máxima de datos que almacena, incluidos los datos de sobrecarga, no la cantidad de contenido de usuario que contiene. Por ejemplo, una  caché con una capacidad de 4 KB almacena menos de 4  KB de datos de usuario, ya que parte del espacio se requiere para bits de sobrecarga como información de trama, dirección y etiqueta. [ 2 ]

Protocolo de comunicación

El envío fiable de una carga útil de datos a través de una red de comunicaciones requiere enviar más que solo la carga útil en sí. También implica el envío de diversos datos de control y señalización ( TCP ) necesarios para alcanzar el destino. Esto genera una sobrecarga de protocolo , ya que los datos adicionales no contribuyen al significado intrínseco del mensaje. [ 3 ] [ 4 ]

En telefonía , la marcación de números y el tiempo de establecimiento de llamadas son costos generales. En radios bidireccionales (pero semidúplex ), el uso de la señal "over" y otras señales necesarias para evitar colisiones también representan un costo general.

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

Codificación de datos

La codificación de información y datos también introduce sobrecarga. La fecha y hora "2011-07-12 07:18:47" se puede expresar como tiempo Unix con un entero con signo de 32 bits , consumiendo solo 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% con respecto a la representación binaria de enteros. 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 una CHANGEDATE con índice 1.13104479272011-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 resultantes del XML codificado en UTF-8 se corresponden con un tamaño adicional del 8625 % con respecto a la representación entera original.

Llamada a función

Llamar a una función requiere una cantidad relativamente pequeña de sobrecarga en tiempo de ejecución para operaciones como el mantenimiento de la pila y el paso de parámetros . [ 5 ] La sobrecarga es relativamente pequeña, pero puede ser problemática cuando hay muchas llamadas (por ejemplo, en un bucle ) o cuando los requisitos de tiempo son estrictos. A veces, un compilador puede minimizar esta sobrecarga insertando una función en línea , eliminando la llamada a la función . [ 6 ]

Véase también

Referencias

  1. Denning, Peter (enero de 2003). «Overhead». Encyclopedia of Computer Science . John Wiley and Sons. págs. 1341–1343 . ISBN  978-0-470-86412-8.
  2. Sorin, Daniel J. (2009). "Cachés y jerarquías de memoria" (PDF) . Recuperado el 13 de marzo de 2019 .Presentación para el curso de Arquitectura de Computadoras.
  3. Problemas comunes de rendimiento en aplicaciones de red. Parte 1: Aplicaciones interactivas . Artículos técnicos de Windows XP. Microsoft.
  4. Sobrecarga de protocolo en redes IP/ATM , Centro de Supercomputación de Minnesota
  5. "Funciones en línea (C++)" . Microsoft Learn . Microsoft. 22 de enero de 2024. Consultado el 22 de marzo de 2024 .
  6. Mahaffey, Terry (24 de julio de 2019). "Inlining Decisions in Visual Studio" . Blog del equipo de C++ . Microsoft.