Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Software design  



1.1  Choice of implementation  





1.2  Tradeoffs  





1.3  Run-time complexity of software  







2 Examples  



2.1  Computer programming (run-time and computational overhead)  





2.2  CPU caches  





2.3  Communications (data transfer overhead)  





2.4  Encodings and data structures (size overhead)  





2.5  File systems  







3 See also  





4 References  














Overhead (computing)






العربية
Català
Čeština
Deutsch
Español
فارسی

Italiano
עברית
Nederlands
Norsk bokmål
Português
Tiếng Vit
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from Overhead information)

Incomputer science, overhead is any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to perform a specific task.[1] It is a special case of engineering overhead. Overhead can be a deciding factor in software design, with regard to structure, error correction, and feature inclusion. Examples of computing overhead may be found in Object Oriented Programming (OOP), functional programming,[citation needed] data transfer, and data structures.

Software design[edit]

Choice of implementation[edit]

A programmer/software engineer may have a choice of several algorithms, encodings, data typesordata structures, each of which have known characteristics. When choosing among them, their respective overhead should also be considered.

Tradeoffs[edit]

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

For example, an implicit data structureorsuccinct data structure may provide low space overhead, but at the cost of slow performance (space/time tradeoff).

Run-time complexity of software[edit]

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.

This should be contrasted with algorithmic efficiency, which takes into account all kinds of resources – a combination (though not a trivial one) of complexity and overhead.

Examples[edit]

Computer programming (run-time and computational overhead)[edit]

Invoking a function introduces a small run-time overhead.[2] Sometimes the compiler can minimize this overhead by inlining some of these function calls.[3]

CPU caches[edit]

In a CPU cache, the "cache size" (orcapacity) refers to how much data a cache stores. For instance, a "4 KB cache" is a cache that holds 4 KB of data. The "4 KB" in this example excludes overhead bits such as frame, address, and tag information.[4]

Communications (data transfer overhead)[edit]

Reliably sending a payload of data over a communications network requires sending more than just the payload itself. It also involves sending various control and signalling data (TCP) required to reach the destination. This creates a so-called protocol overhead as the additional data does not contribute to the intrinsic meaning of the message.[5][6]

Intelephony, number dialing and call set-up time are overheads. In two-way (but half-duplex) radios, the use of "over" and other signaling needed to avoid collisions is an overhead.

Protocol overhead can be expressed as a percentage of non-application bytes (protocol and frame synchronization) divided by the total number of bytes in the message.

Encodings and data structures (size overhead)[edit]

The encoding of information and data introduces overhead too. The date and time "2011-07-12 07:18:47" can be expressed as Unix time with the 32-bit signed integer 1310447927, consuming only 4 bytes. Represented as ISO 8601 formatted UTF-8 encoded string 2011-07-12 07:18:47 the date would consume 19 bytes, a size overhead of 375% over the binary integer representation. As XML this date can be written as follows with an overhead of 218 characters, while adding the semantic context that it is a CHANGEDATE with index 1.

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

The 349 bytes, resulting from the UTF-8 encoded XML, correlates to a size overhead of 8625% over the original integer representation.

File systems[edit]

Besides the files themselves, computer file systems take a portion of the space to store directory names and listings, file names, files' sector locations, attributes such as the date and time of the last modification and creation, how the files are fragmented, written and free parts of the space, and a journal on some file systems.

Many small files create more overhead than a low number of large files.

See also[edit]

References[edit]

  1. ^ "Understanding the Visualization of Overhead and Latency in NVIDIA Nsight Systems". NVIDIA Technical Blog. 2020-09-18. Retrieved 2024-07-04.
  • ^ "Inline functions (C++)". Microsoft Learn. Microsoft. Retrieved 22 March 2024.
  • ^ Mahaffey, Terry (24 July 2019). "Inlining Decisions in Visual Studio". C++ Team Blog. Microsoft.
  • ^ Sorin, Daniel J. (2009). "Caches and Memory Hierarchies" (PDF). Retrieved March 13, 2019. Presentation for course in Computer Architecture.
  • ^ Common Performance Issues in Network Applications Part 1: Interactive Applications, Windows XP Technical Articles, Microsoft
  • ^ Protocol Overhead in IP/ATM Networks, Minnesota Supercomputer Center

  • Retrieved from "https://en.wikipedia.org/w/index.php?title=Overhead_(computing)&oldid=1232702087#Communications_(data_transfer_overhead)"

    Category: 
    Software optimization
    Hidden categories: 
    Articles with short description
    Short description is different from Wikidata
    Use American English from March 2019
    All Wikipedia articles written in American English
    Articles needing additional references from February 2018
    All articles needing additional references
    All articles with unsourced statements
    Articles with unsourced statements from July 2024
     



    This page was last edited on 5 July 2024, at 04:20 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki