码迷,mamicode.com
首页 > 编程语言 > 详细

异步请求Python库 grequests的应用和与requests库的响应速度的比较

时间:2018-05-30 21:30:07      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:san   let   就是   修改   sys   lte   microsoft   tps   一个   

requests库是python一个优秀的HTTP库,使用它可以非常简单地执行HTTP的各种操作,例如GET、POST等。不过,这个库所执行的网络请求都是同步了,即cpu发出请求指令后,IO执行发送和等待等操作,在这段IO执行的时间里,cpu什么也不做,这样cpu的计算能力就被浪费了。所以,可以尝试把网络请求修改为异步的,也就是在IO发挥作用的这段时间,CPU去做这个程序里的其他事情,等IO收到响应的数据,CPU回来处理。偶然发现下面的帖子特分享与大家,并与requests库进行简单响应速度比较:

建议先阅读原博主文章:


感谢原博主的分享精神,转到原博地址:  HTTPS://WWW.LETIANTIAN.ME/2014-10-04-ASYNCHRONOUS-REQUESTS/



 

-----------------------------------华丽的分割线-----------------------------------------------------------------------

下面是对 grequests库和requests库的响应比较

# -*- coding: utf-8 -*-
import grequests
import time
import requests
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8‘)

# 同网络环境下比较结果

now = int(time.time())
timeArray = time.localtime(now)
otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
print otherStyleTime
urls = [‘http://letiantian.me/‘] * 10
# ------------------- grequests 库请求-------------------------------------
# reqs = [grequests.get(url) for url in urls] # 用时1秒左右
# response = grequests.map(reqs)
# print response[9].status_code
# ------------------- requests 库请求-------------------------------------
reqs = [requests.get(url) for url in urls] # 用时7秒
print reqs[9].status_code
now2 = int(time.time())
timeArray2 = time.localtime(now2)
otherStyleTime2 = time.strftime("%Y--%m--%d %H:%M:%S", timeArray2)
print otherStyleTime,‘-------------‘,otherStyleTime2
pasting

 

异步请求Python库 grequests的应用和与requests库的响应速度的比较

标签:san   let   就是   修改   sys   lte   microsoft   tps   一个   

原文地址:https://www.cnblogs.com/fanjp666888/p/9112786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!