Jump to content

Bottleneck (software)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Elliott.Blair (talk | contribs) at 12:20, 25 August 2022 (Added a reference and explanation to the Theory of constraints.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In software engineering, a bottleneck occurs when the capacity of an application or a computer system is limited by a single component, like the neck of a bottle slowing down the overall water flow. The bottleneck has the lowest throughput of all parts of the transaction path.

As such, system designers will try to avoid bottlenecks and direct effort towards locating and tuning existing bottlenecks. Some examples of possible engineering bottlenecks are: a processor, a communication link, disk IO, etc. Any system or application will hit a bottleneck if the work arrives at a sufficiently fast pace.[1] According to the Theory of constraints when looking to improve the speed of processing, the point of the bottleneck, or hot spot's occurrence is the place to work on. A thought-provoking stipulation of the Theory is that raising the efficiency of a process stage other than the constraint can generate even more delay.

Tracking down bottlenecks (sometimes known as "hot spots" - sections of the code that execute most frequently - i.e. have the highest execution count) is called performance analysis. Reduction is usually achieved with the help of specialized tools, known as performance analyzers or profilers. The objective being to make those particular sections of code perform as fast as possible to improve overall algorithmic efficiency.

See also

References

  1. ^ Wescott, Bob (2013). The Every Computer Performance Book, Chapter 3: Useful laws. CreateSpace. ISBN 978-1482657753.