traduccion significado overheads informatica game examples door crossfit costs cost bateria overhead

overheads - overhead significado



¿Qué es "overhead"? (10)

Soy un estudiante en Ciencias de la Computación y estoy escuchando mucho la palabra "sobrecarga" cuando se trata de programas y géneros. Que significa exactamente?


El significado de la palabra puede diferir mucho con el contexto. En general, se utilizan recursos (la mayoría de las veces, memoria y tiempo de CPU), que no contribuyen directamente al resultado deseado, pero que son requeridos por la tecnología o el método que se está utilizando. Ejemplos:

  • Sobrecarga de protocolo : las tramas Ethernet, los paquetes IP y los segmentos TCP tienen encabezados, las conexiones TCP requieren paquetes de intercambio. Por lo tanto, no puede usar todo el ancho de banda del que es capaz el hardware para sus datos reales. Puede reducir la sobrecarga utilizando tamaños de paquete más grandes y UDP tiene un encabezado más pequeño y ningún apretón de manos.
  • Sobrecarga de memoria de estructura de datos : una lista vinculada requiere al menos un puntero por cada elemento que contiene. Si los elementos tienen el mismo tamaño que un puntero, esto significa una sobrecarga de memoria del 50%, mientras que una matriz puede tener un 0% de sobrecarga.
  • Sobrecarga de llamada al método : un programa bien diseñado se divide en muchos métodos cortos. Pero cada llamada al método requiere configurar un marco de pila, copiar parámetros y una dirección de retorno. Esto representa una sobrecarga de CPU en comparación con un programa que hace todo en una sola función monolítica. Por supuesto, la facilidad de mantenimiento adicional hace que valga la pena, pero en algunos casos, las llamadas a métodos excesivos pueden tener un impacto significativo en el rendimiento.

Estás cansado y no puedes hacer más trabajo. Tú comes comida. La energía gastada en buscar comida, obtenerla y, de hecho, comerla consume energía y ¡está sobrecargada!

La sobrecarga es algo que se pierde para realizar una tarea. El objetivo es hacer que la sobrecarga sea muy pequeña.

En informática digamos que quieres imprimir un número, esa es tu tarea. Pero almacenar el número, configurar la pantalla para imprimirlo y llamar a rutinas para imprimirlo, y luego acceder al número de la variable son todos gastos generales.


Overhead generalmente se refiere a la cantidad de recursos adicionales (memoria, procesador, tiempo, etc.) que toman los diferentes algoritmos de programación.

Por ejemplo, la sobrecarga de insertar en un Árbol Binario equilibrado podría ser mucho más grande que la misma inserción en una Lista Vinculada simple (la inserción tardará más tiempo, usará más potencia de procesamiento para equilibrar el Árbol, lo que dará como resultado un tiempo de operación más largo el usuario).


Para una sobrecarga de programador se refiere a los recursos del sistema que consume su código cuando se ejecuta en una plataforma de entrega en un conjunto dado de datos de entrada. Usualmente el término se usa en el contexto de comparar diferentes implementaciones o posibles implementaciones.

Por ejemplo, podríamos decir que un enfoque particular podría incurrir en una sobrecarga considerable de la CPU, mientras que otro podría incurrir en más sobrecarga de memoria y otro podría cargarse a la sobrecarga de la red (y conllevaría una dependencia externa, por ejemplo).

Démosle un ejemplo específico: calcule el promedio (media aritmética) de un conjunto de números.

El enfoque obvio es recorrer las entradas, manteniendo un total acumulado y un conteo. Cuando se encuentra el último número (señalado por EOF "al final del archivo", o algún valor centinela, o algún botón GUI, lo que sea), simplemente dividimos el total por el número de entradas y terminamos.

Este enfoque casi no implica gastos generales en términos de CPU, memoria u otros recursos. (Es una tarea trivial).

Otro enfoque posible es "sorber" la entrada en una lista. itere sobre la lista para calcular la suma, luego divídala por el número de elementos válidos de la lista.

En comparación, este enfoque podría incurrir en cantidades arbitrarias de gastos generales de memoria.

En una mala implementación particular, podríamos realizar la operación de suma utilizando recurrencia pero sin eliminación de cola. Ahora, además de la sobrecarga de memoria para nuestra lista, también estamos presentando la sobrecarga de la pila (que es un tipo diferente de memoria y es a menudo un recurso más limitado que otras formas de memoria).

Sin embargo, otro enfoque (posiblemente más absurdo) sería publicar todas las entradas en una tabla SQL en un RDBMS. Luego simplemente llamando a la función SQL SUM en esa columna de esa tabla. Esto cambia nuestra sobrecarga de memoria local a otro servidor e incurre en gastos generales de red y dependencias externas en nuestra ejecución. (Tenga en cuenta que el servidor remoto puede o no tener una tara de memoria particular asociada con esta tarea, por ejemplo, puede sacar todos los valores inmediatamente al almacenamiento).

Hipotéticamente podría considerar una implementación sobre algún tipo de clúster (posiblemente para hacer factible el promedio de billones de valores). En este caso, cualquier codificación y distribución necesaria de los valores (correlacionarlos con los nodos) y la recopilación / intercalación de los resultados (reducción) se contabilizarán como gastos generales.

También podemos hablar sobre los gastos generales incurridos por factores que van más allá del código del programador. Por ejemplo, la compilación de algunos códigos para procesadores de 32 o 64 bits podría implicar una sobrecarga mayor de la que se vería en una arquitectura anterior de 8 bits o 16 bits. Esto puede implicar una mayor sobrecarga de memoria (problemas de alineación) o sobrecarga de CPU (donde la CPU se ve obligada a ajustar el orden de bits o el uso de instrucciones no alineadas, etc.) o ambos.

Tenga en cuenta que el espacio en disco ocupado por su código y sus bibliotecas, etc., generalmente no se denomina "sobrecarga", sino que se denomina "huella". Además, la memoria base que consume su programa (independientemente de cualquier conjunto de datos que esté procesando) también se denomina su "huella".


Piense en la sobrecarga como el tiempo requerido para administrar los hilos y coordinarlos. Es una carga si el hilo no tiene suficiente tarea que hacer. En tal caso, el costo adicional sobreviene el tiempo ahorrado mediante el uso de subprocesos y el código lleva más tiempo que el proceso secuencial.


Podrías usar un diccionario. La definición es la misma Pero para ahorrarle tiempo, Overhead es el trabajo requerido para hacer el trabajo productivo. Por ejemplo, un algoritmo se ejecuta y hace un trabajo útil, pero requiere memoria para hacer su trabajo. Esta asignación de memoria lleva tiempo, y no está directamente relacionada con el trabajo que se realiza, por lo tanto, se trata de gastos generales.


Puedes consultar Wikipedia . Pero principalmente cuando se usan más acciones o recursos. Como si estuviera familiarizado con .NET, puede tener tipos de valores y tipos de referencia. Los tipos de referencia tienen una sobrecarga de memoria ya que requieren más memoria que tipos de valores.


Son los recursos necesarios para configurar una operación. Puede parecer no relacionado, pero necesario.

Es como cuando necesita ir a algún lugar, es posible que necesite un automóvil. Sin embargo, sería muy difícil conducir un automóvil por la calle, por lo que es posible que desee caminar. Sin embargo, los gastos generales valdrían la pena si cruzas el país.

En ciencias de la computación, a veces usamos autos para ir a la calle porque no tenemos una mejor manera, o no vale la pena el tiempo para "aprender a caminar".


Un ejemplo concreto de sobrecarga es la diferencia entre una llamada de procedimiento "local" y una llamada de procedimiento "remota".

Por ejemplo, con RPC clásico (y muchos otros marcos remotos, como EJB), una llamada a función o método tiene el mismo aspecto para un codificador, ya sea local, en una llamada de memoria o en una llamada de red distribuida.

Por ejemplo:

service.function(param1, param2);

¿Es ese un método normal, o un método remoto? Por lo que ves aquí no puedes decirlo.

Pero se puede imaginar que la diferencia en los tiempos de ejecución entre las dos llamadas es dramática.

Entonces, si bien la implementación central "costará lo mismo", la "sobrecarga" involucrada es bastante diferente.


Wikipedia nos tiene cubiertos :

En ciencias de la computación, los gastos generales generalmente se consideran como cualquier combinación de tiempo de computación en exceso o indirecto, memoria, ancho de banda u otros recursos necesarios para alcanzar un objetivo en particular. Es un caso especial de sobrecarga de ingeniería.