请考虑以下代码:
arr = []
for (str, id, flag) in some_data:
arr.append((str, id, flag))
Run Code Online (Sandbox Code Playgroud)
想象一下,输入字符串的平均长度为2个字符,最大值为5个字符,而some_data则为100万个元素.这种结构的内存要求是什么?
可能是因为字符串浪费了很多内存?如果是这样,我该如何避免呢?
tl;dr:如何最大限度地增加可以并行发送的 http 请求数?
我正在使用aiohttp库从多个 url 获取数据。我正在测试它的性能,我观察到在这个过程中的某个地方存在瓶颈,一次运行更多的 url 无济于事。
我正在使用此代码:
import asyncio
import aiohttp
async def fetch(url, session):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0'}
try:
async with session.get(
url, headers=headers,
ssl = False,
timeout = aiohttp.ClientTimeout(
total=None,
sock_connect = 10,
sock_read = 10
)
) as response:
content = await response.read()
return (url, 'OK', content)
except Exception as e:
print(e)
return (url, 'ERROR', str(e))
async def run(url_list):
tasks = []
async with …Run Code Online (Sandbox Code Playgroud)