High Performance Python by Micha Gorelick
Author:Micha Gorelick [Gorelick, Micha]
Language: eng
Format: epub, pdf
Publisher: O'Reilly Media
Published: 2020-04-29T00:00:00+00:00
As in the gevent example, we must use a semaphore to limit the number of requests.
We return a new coroutine that will asynchronously download files and respect the locking of the semaphore.
The http_client function returns futures. To keep track of progress, we save the futures into a list.
As with gevent, we can wait for futures to become ready and iterate over them.
One immediate reaction to this code is the number of async with, async def, and await calls. In the definition for http_get, we use the async context manager to get access to shared resources in a concurrent-friendly way. That is to say, by using async with, we allow other coroutines to run while waiting to acquire the resources we are requesting. As a result, sharing things such as open semaphore slots or already opened connections to our host can be done more efficiently than we experienced with tornado.
In fact, the call graph in Figure 8-6 shows a smooth transition similar to that of gevent in Figure 8-4. Furthermore, the asyncio code runs slightly faster than the gevent code overall (1.10 seconds versus 1.14 seconds—see Table 8-1), even though the time for each request is slightly longer. This can be explained only by a faster resumption of coroutines paused by the semaphore or waiting for the HTTP client.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Coding Theory | Localization |
Logic | Object-Oriented Design |
Performance Optimization | Quality Control |
Reengineering | Robohelp |
Software Development | Software Reuse |
Structured Design | Testing |
Tools | UML |
Deep Learning with Python by François Chollet(11875)
Hello! Python by Anthony Briggs(9365)
OCA Java SE 8 Programmer I Certification Guide by Mala Gupta(9337)
The Mikado Method by Ola Ellnestam Daniel Brolund(9300)
Dependency Injection in .NET by Mark Seemann(8853)
Algorithms of the Intelligent Web by Haralambos Marmanis;Dmitry Babenko(7845)
Test-Driven iOS Development with Swift 4 by Dominik Hauser(7307)
Grails in Action by Glen Smith Peter Ledbrook(7291)
The Well-Grounded Java Developer by Benjamin J. Evans Martijn Verburg(7111)
Secrets of the JavaScript Ninja by John Resig Bear Bibeault(5951)
Kotlin in Action by Dmitry Jemerov(4633)
Practical Vim (for Kathryn Amaral) by Drew Neil(3724)
Cracking the GRE Premium Edition with 6 Practice Tests, 2015 (Graduate School Test Preparation) by Princeton Review(3592)
Linux Device Driver Development Cookbook by Rodolfo Giometti(3391)
Learn Windows PowerShell in a Month of Lunches by Don Jones(3236)
Learning Java by Patrick Niemeyer & Daniel Leuck(2867)
Learning React: Functional Web Development with React and Redux by Banks Alex & Porcello Eve(2832)
Becoming a Dynamics 365 Finance and Supply Chain Solution Architect by Brent Dawson(2585)
Mastering Java 9 by Dr. Edward Lavieri(2569)