functools.partial产生性能问题

问题描述

def fetchData(data):
    headers = {
        'Connection': 'keep-alive','Accept': '*/*','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/85.0.4183.121 Safari/537.36','X-Requested-With': 'XMLHttpRequest','sec-fetch-site': 'same-origin','sec-fetch-mode': 'cors','Sec-Fetch-Dest': 'empty','Accept-Language': 'en-US,en;q=0.9','Content-Type': 'application/json',}
    params = (
        ('Name',data['lastName']),('type','P'),('_','1603183755873'),)
    resp = requests.get('someurl',params=params,headers=headers,proxies=generate_random_proxy())
    return resp

我有以下代码

with concurrent.futures.ThreadPoolExecutor(max_workers=30) as executor:
        loop = asyncio.get_event_loop()
        futures = [
            loop.run_in_executor(
                executor,functools.partial(fetchData,data=i)
            )
            for i in fileData
        ]
        for response in await asyncio.gather(*futures):
            output.append(response.json())

当我使用functools.partial(fetchData,data=i)时,似乎花了更长的时间,与使用时相比,花了将近102秒

loop.run_in_executor(
                executor,requests.get,'someurl?name={name}&type=P'.format(name=i['lastName']),headers,)

花了大约14秒钟...我基本上是在函数fetchData中调用request.get,为什么会有如此巨大的速度差异?我打错了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...