ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 协程并发测试

2022-08-01 18:36:05  阅读:151  来源: 互联网

标签:协程 耗时 python redis 并发 测试 time 100w


这篇文章永久挂在首页,就是为了对一些人说Python慢的人啪啪打脸。

总有人说python慢,至于为什么慢就是说不上来,今天就是测试一下python语言的速度

在网络爬虫中,影响速度的有数据下载,数据解析,数据存储,最主要的影响是数据下载和数据存储,数据下载影响是网络IO,数据存储是磁盘IO,本次模拟数据下载是1s,然后数据存储直接是把数据存储到redis中,redis是内网的redis库。下面一次并发10w,100w,100w个任务的耗时情况。

服务器是使用的个人笔记本,配置如下

测试代码如下:

#-*-coding:utf-8-*-
import time
from gevent import monkey
monkey.patch_all()
import gevent
import redis

RedisDatabases = {
    "host": "10.10.25.207",
    "port": "6379",
}

r = redis.Redis(host=RedisDatabases['host'],port=RedisDatabases['port'], db=0)

def spider(item):
    time.sleep(1)
    r.sadd('test',item)

if __name__ == "__main__":


    start_time = time.time()

    result_List = [page for page in range(10000)]
    print ("本次接口获得的IP个数是:", len(result_List))
    from gevent import pool

    pool = pool.Pool(128)
    jobs = []
    for item in result_List:
        proxie = item
        jobs.append(pool.spawn(spider, item))
    gevent.joinall(jobs, timeout=3600)
    print("程序验证耗时:", time.time() - start_time)

测试一:

  1w个任务,并发数128 耗时

  

 

测试二:

  10w个任务,并发数128 耗时

  

 

 

 

测试三:

  100w个任务,并发数128 耗时

 

 

测试四:

  100w个任务,并发数256 耗时

 

测试五:

  100w个任务,并发数512耗时

 

测试六:

  100w个任务,并发数1024耗时

  

 

 

 

 

测试七:

  100w个任务,并发数2048耗时

  

 

 

测试八:

  100w个任务,并发数4096耗时

  

 

 

 

测试九:

  100w个任务,并发数8192耗时

  

 

   并发数 8192  耗时521s,并且redis连接错误1785个,有时候不是并发数开的越大速度就越快

 

总结:

 

标签:协程,耗时,python,redis,并发,测试,time,100w
来源: https://www.cnblogs.com/xuchunlin/p/16541288.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有