Python程序在一台机器上运行异步抓取任务非常快,但在其他机器上运行不快

2024-05-14 13:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,python代码在我的PC上运行得非常快,而我已经尝试了另外4台机器,但它们都以同样的方式运行得比较慢

在我运行代码的PC上,它在3分钟内处理200个请求并返回200个响应。 这台机器没有什么特别之处

i5第5代 8GB内存 固态硬盘驱动器

虽然我已经在功能更强的机器和功能较弱的机器上试过了,但当我运行相同的代码时,速度要慢得多,而在速度较慢的机器上,它在退出之前只做了10条记录,就像它完成了一样。在速度更快的机器上,它最多会出现35条记录,然后退出

知道是什么导致了这个问题吗

我的机器有更多的可再发行版本。他们能提供优势吗

下面是获取部件所涉及的代码

async def fetch(session, payload):
    url = ApiUrl
    #print(payload)
    async with session.get(url, data = payload) as response:
        readyResponse= await response.text()
        global c
        c+=1
        print(c)
        parseIt(readyResponse) # function that parses results


async def fetch_all(payloads, loop):
    connector = aiohttp.TCPConnector(limit=10)
    async with aiohttp.ClientSession(connector=connector, loop=loop) as session:
        results = await asyncio.gather(*[fetch(session, payload) for payload in allReq], return_exceptions=True)
        return results


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    payloads = allReq
    htmls = loop.run_until_complete(fetch_all(payloads, loop))



Tags: 代码功能机器loopconnectorasyncsessiondef

热门问题