我正在使用boto3从AWS基础设施检索资源。我的代码从所有16个区域提取函数。我很好奇为什么它这么慢(大约20秒)。在调查时,我意识到以下代码行是瓶颈:
pages = client.get_paginator(paginator_name).paginate(**paginator_args)
client = AWSFacadeUtils.get_client(service, region)
pages = client.get_paginator(paginator_name).paginate(**paginator_args))
resources = []
for page in pages: # This is hella slow
resources.extend(page[key])
return resources
为什么遍历页面这么慢?
答案 0 :(得分:0)
遍历页面如此之慢的原因在于,您不仅要遍历资源,还需要获取资源。
在文档中,paginator
的意思如下:
分页(**变格)
为操作创建分页器对象。
这将返回一个可迭代的对象。迭代此对象将产生一个 一次只有一页。