Jump to content

Bottleneck (software): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Added {{More citations needed}} tag
Osalbahr (talk | contribs)
m Unnecessary capitalization
Line 2: Line 2:
In [[software engineering]], a '''bottleneck''' occurs when the capacity of an [[software application|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.
In [[software engineering]], a '''bottleneck''' occurs when the capacity of an [[software application|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 [[CPU|processor]], a [[communication link]], [[disk storage|disk IO]], etc. Any system or application will hit a bottleneck if the work arrives at a sufficiently fast pace.<ref>{{cite book | last = Wescott | first = Bob | title = The Every Computer Performance Book, Chapter 3: Useful laws | publisher = [[CreateSpace]] | date = 2013 | isbn = 978-1482657753}}</ref> 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.
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 [[CPU|processor]], a [[communication link]], [[disk storage|disk IO]], etc. Any system or application will hit a bottleneck if the work arrives at a sufficiently fast pace.<ref>{{cite book | last = Wescott | first = Bob | title = The Every Computer Performance Book, Chapter 3: Useful laws | publisher = [[CreateSpace]] | date = 2013 | isbn = 978-1482657753}}</ref> 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 [[Profiling (computer programming)|performance analysis]]. Reduction is usually achieved with the help of specialized tools, known as [[Performance Analyzer|performance analyzers]] or [[Profiler (computer science)|profilers]]. The objective being to make those particular sections of code perform as fast as possible to improve overall [[algorithmic efficiency]].
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 [[Profiling (computer programming)|performance analysis]]. Reduction is usually achieved with the help of specialized tools, known as [[Performance Analyzer|performance analyzers]] or [[Profiler (computer science)|profilers]]. The objective being to make those particular sections of code perform as fast as possible to improve overall [[algorithmic efficiency]].

Revision as of 09:42, 22 December 2022

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.