Книга: Learning Concurrency in Python
Назад: Properties of concurrent systems
Дальше: Understanding parallelism

I/O bottlenecks

I/O bottlenecks, or I/O bottlenecks for short, are bottlenecks where your computer spends more time waiting on various inputs and outputs than it does on processing the information.

You'll typically find this type of bottleneck when you are working with an I/O heavy application. We could take your standard web browser as an example of a heavy I/O application. In a browser, we typically spend a significantly longer amount of time waiting for network requests to finish for things such as style sheets, scripts, or HTML pages to load as opposed to rendering this on the screen.

If the rate at which data is requested is slower than the rate at which it is consumed, then you have an I/O bottleneck.

One of the main ways to improve the speed of these applications is to either improve the speed of the underlying I/O by buying more expensive and faster hardware, or to improve the way in which we handle these I/O requests.

A great example of a program bound by I/O bottlenecks would be a web crawler. Now the main purpose of a web crawler is to traverse the web, and essentially index web pages so that they can be taken into consideration when Google runs its search ranking algorithm to decide the top 10 results for a given keyword.

We'll start by creating a very simple script that just requests a page and times how long it takes to request said web page, as follows:

import urllib.request
import time
t0 = time.time()
req = urllib.request.urlopen('http://www.example.com')
pageHtml = req.read()
t1 = time.time()
print("Total Time To Fetch Page: {} Seconds".format(t1-t0))

If we break down this code, first we import the two necessary modules, urllib.request and the time module. We then record the starting time and request the web page, example.com, and then record the ending time and print out the time difference.

Now, say we wanted to add a bit of complexity and follow any links to other pages so that we could index them in the future. We could use a library such as BeautifulSoup in order to make our lives a little easier, as follows:

import urllib.request
import time
from bs4 import BeautifulSoup

t0 = time.time()
req = urllib.request.urlopen('http://www.example.com')
t1 = time.time()
print("Total Time To Fetch Page: {} Seconds".format(t1-t0))
soup = BeautifulSoup(req.read(), "html.parser")

for link in soup.find_all('a'):
print(link.get('href'))

t2 = time.time()
print("Total Execeution Time: {} Seconds".format)

When I execute the preceding program, I see the results like so on my terminal:

You'll notice from this output that the time to fetch the page is over a quarter of a second. Now imagine if we wanted to run our web crawler for a million different web pages, our total execution time would be roughly a million times longer.

The real main cause for this enormous execution time would purely boil down to the I/O bottleneck we face in our program. We spend a massive amount of time waiting on our network requests, and a fraction of that time parsing our retrieved page for further links to crawl.

Назад: Properties of concurrent systems
Дальше: Understanding parallelism

MaxPowermuh
Download missing dll from Download unarc.dll page. Fix your error now!
Kimeror
Interested in hardrock? How about KISS? They are on a tour this year all across Canada and USA. Visit KISS Tour Dates Omaha to know more about KISS concert dates in 2019.
Carrieor
Carrie Underwood is my favourite country singer. She is young, beautiful and charming female in her 30s. Her strong voice takes me away from all troubles of this world so I start enjoy my life and listen songs created by her mind. Now the singer is on a Cry Pretty 360 Tour started in May of 2019. The concerts scheduled for this year, up to the 31st of October. Tickets are available for all men and women with different income. If you love country music as mush as I, then you must visit at least one of her concert. All tour dates are available at the Carrie Underwood tour Pittsburgh. Visit the website and make yourself familiar with all powerful Carrie Underwood concerts in 2019!
fff
fffffff
beautygocams
В нынешний час организовать оргазм в желанное место также извлечь удовлетворение в период, когда же Вам его хочется вовсе не есть трудностью. В случае когда пользователь одинокий и близи только табло ноутбука – из помощью указанному порно-ресурса порно чат хамстер мы обещаем доставит польователю фонтан ярких настроение также впечатлений ото красивых девушек, они желают с Вами поиграть. На страничке веб порнухи пользователь сможет использовать различные типы коммуникации, стартуя с очередного обзора прямой видео по портативного-видеокамеры затем финишируя приватным сексом с пришедшей по вкусу девушкой. К Вашему комфорту пользователь сможет оформить простую фиксацию также создать доступную лишь Вам страничку, на ней достаточно использовать копить бонусы затем применять их на шанс привилегии абонента именно на указанному веб-сайте. Ищите по разновидность, находите трансляции по вебке тогда лично направляйте движениями партнерши благодаря чатику или камеру вместе с самыми заводящими женщинами столицы.
AnthonyCoern
теплые полы электрические
livepornosexchat
Половое оргазм на сегодняшний день все же принципиально для людей, собственно как же здоровый продовольствие, потому же живые видеочаты, каковы содействуют пользователям передохнуть плюс заняться любовью указывают первые чарт в поисковой системе. Наш Порно ресурс русские порно чаты презентует пользователям анонимного посещения собственно к самым жарким дамам из всего мира – ищите девушку на персональные вкус также играйте в любовь через прямую картинкой на приват либо общем чате совсем без оплаты. Здесь пользователи полностью можете считать себя повелителем действий, так как каждая женщина может радовать только Вас плюс покоряться различным запросам. Данный видеочат под секса расширяет новым клиентам вполне уникальный формат: чат с девушками с помощью сайту, сексуальное-представления, вознаграждения при создания аккаунта, те что зрители смогут использовать под уникальных прав, подходящая поиск плюс другие плюшки, какие подарят Вам огромный жарких страсти также ощущения.
KinogoBlue
Часто томитесь с задаче, то что же посмотреть интригующее на следующий час? На источнике открытого и разного фильмов Kinogo Ой, мамочки (2017) смотреть онлайн бесплатно юзеры смогут скоропостижно увидеть хороший вид фильма любимого формата с содействия интерфейса поиска, отбора либо ленты поисковой системы. Мы все это сделал взамен Вас также сделали подбор кино намного легче, именно на главной странице зрители имеют возможность просмотреть недавно свежую кино, известные мультисериалы и наибольше масштабные кино, ну а если надумаете увидеть фрагменты вероятного короткометражек текущего десятилетия, сейчас же переходите на раздел «В скором времени у кинотеатрах» и обозревайте вполне новинки сериалы в киноафише. Короткое описание сюжета, созданная оценка от наблюдателей и любое мнение подсказывают зрителю как выбрать кинофильм, какое понравится вовсе не для Вас, но также многим близким. Заходите затем включайте хорошие кинокартину непременно сейчас!