- Overhead (computing)
-
In computer science, overhead is generally considered any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to attain a particular goal. It is a special case of engineering overhead.
Contents
Examples
Computer Programming
- Invoking a function.
Communications
- Sending a payload of data (reliably) over a communications network requires sending more than just the desired payload data, itself. It also involves sending various control and signalling data (TCP) required to achieve the reliable transmission of the desired data in question. The control signalling is overhead.
- A simplified version is the need and time to dial a number to establish a phone call, before the call can take place. Dialing the number and establishing the call are overhead.
- Another simplified scenario is in the use of 2-way (but half-duplex) radios. Overhead would be the use of “over” and other signalling needed to avoid collisions, as extra traffic to that of the actual message(s) to be conveyed.
Conceptual
Vehicles & travel
- Travel using a vehicle involves the overhead of transporting the vehicle (plus payload) to the destination, rather than just the payload. Energy must be used to move the mass of the vehicle, in addition to the passengers and/or cargo.
- Time to complete a journey always includes a fixed amount of time needed to make preparations in order to actually begin travelling. Imagine boarding a shared vehicle (a train, or aircraft), or dressing warmly to leave the building and get into a car. This fixed ‘setup’ time is overhead to the journey itself.
Choice of algorithm
A programmer/software engineer may have a choice of several algorithms, each of which have known characteristics. When choosing among them, their respective overhead should also be considered.
Tradeoffs
In software engineering, overhead can influence the decision whether or not to include features in new products, or indeed whether to fix bugs. A feature that has a high overhead may not be included – or needs a big financial incentive to do so. Often, even though software providers are well aware of bugs in their products, the payoff of fixing them is not worth the reward, because of the overhead.
Complexity
Algorithmic complexity is generally specified using Big O Notation. This makes no comment on how long something takes to run or how much memory it uses, but how its increase depends on the size of the input. Overhead is deliberately not part of this calculation, since it varies from one machine to another, whereas the fundamental running time of an algorithm does not.[citation needed]
This should be contrasted with efficiency, which takes into account all kinds of resources – a combination (though not a trivial one) of complexity and overhead.[citation needed]
See also
Categories:
Wikimedia Foundation. 2010.