Какво е bottleneck и може ли да софтуерния код да го предизвика?

+10 гласа
1,145 прегледа
попитан 2016 август 5 от Slaven Kymanov (400 точки)
Интересно ми е да разбера кокаво точно представлява bottleneck, какво го предизвиква и как да го отсраним?

1 отговор

+1 глас
отговорени 2016 август 5 от Daniel Ivanov (11,160 точки)
избран 2016 август 6 от Slaven Kymanov
 
Най-добър отговор

Нямаш проблеми :D

Bottleneck (букв. „гърлото на бутилка“) e част от софтуера или хардуера, която забавя reponse time-а (времето за реакция). Това става, когато капацитета на едно приложение или компютърна система е много ограничен от един компонент.Той се открива при LOAD/Performance testing-а. При performance test-ването се проверява за response time-а и при проблем  да се открие каква е причината и да се оправи.

Response time –колко бързо един уебсайт или един софтуер успява да реагира на някакъв request. Например, при уебсайта response time-а е колко бързо ще пренасочи един потребител от сегашната страница към друга или колко бързо ще реагира на натискането на линк/бутон , общо казано реакция при взаимодействие.   

В някои случаи bottleneck може да е един SQL (Structured Query Language) statement, който да консумира прекалено много памет от сървъра. Бързо и лесно решение на този проблем може да бъде модифициране на този statement или разделяне на два или повече различни statement-а.

Най – честият метод за справяне с bottleneck е да се добавят нови машини към production pool-а.

Тракването на bottlenecks (понякога биват назовавани като “hot spots” – горещи точки, понеже това са участъците от кода, които се изпълняват най-често) се нарича performance analysis (анализ на производителността и оттам идва LOAD/Performance testing-а и затова по време на него тест се откриват).

Намаляването на броя на тези bottleneck-ове става с помощта на специализирани tool-ове, познати още като performance analyzer-и или profiler-и. Целта им е да направят така, че тези участаци от кода да работят възможно най-бързо, за да увеличат цялостнaта алгоритмична ефикасност (algorithmic efficiency).

коментиран 2016 август 6 от Slaven Kymanov (400 точки)
Mersi mnogo, jiv i zdrav!
...