More Related Content Similar to Writing Server in Python (20) Writing Server in Python9. Thread Stats Avg Stdev Max +/- Stdev
Latency 9.94s 21.79s 1.45m 83.49%
Req/Sec 0.03 1.92 111.00 99.97%
703 requests in 1.67m, 70.71KB read
Socket errors: connect 0, read 32, write 0, timeout
4604
Requests/sec: 7.03
Transfer/sec: 723.95B
14. Thread Stats Avg Stdev Max +/- Stdev
Latency 9.94s 21.79s 1.45m 83.49%
Req/Sec 0.03 1.92 111.00 99.97%
703 requests in 1.67m, 70.71KB read
Socket errors: connect 0, read 32, write 0, timeout
4604
Requests/sec: 7.03
Transfer/sec: 723.95B
Thread Stats Avg Stdev Max +/- Stdev
Latency 215.55ms 740.19ms 7.41s 92.21%
Req/Sec 1.01 9.51 666.00 98.71%
10052 requests in 1.67m, 0.99MB read
Socket errors: connect 0, read 0, write 0, timeout 344
Requests/sec: 100.50
Transfer/sec: 10.11KB
21. import asyncio
@asyncio.coroutine
def handle_echo(reader, writer):
data = yield from reader.read(100)
while data:
writer.write(data.decode())
yield from writer.drain()
data = yield from reader.read(100)
writer.close()
try:
loop = asyncio.get_event_loop()
coro = asyncio.start_server(handle_echo, '127.0.0.1', 8000, loop=loop)
server = loop.run_until_complete(coro)
loop.run_forever()
except:
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
22. import asyncio
async def handle_echo(reader, writer):
data = await reader.read(100)
while data:
writer.write(data)
await writer.drain()
data = await reader.read(100)
writer.close()
try:
loop = asyncio.get_event_loop()
coro = asyncio.start_server(handle_echo, '127.0.0.1', 8000, loop=loop)
server = loop.run_until_complete(coro)
loop.run_forever()
except:
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
3.5
23. 1. Compatibilidade entre bibliotecas
2. Útil para aplicações IO bound ou com
muitas conexões abertas mas sem
processamento
3. Pode ser mais dificil de programar
4. Starvation