python 2.7中有async for的等价表达方式吗?
在使用tornado的过程中发现了请求阻塞,用IOLoop.current().set_blocking_log_threshold(0.5)
查看了下,是在如下dict comprehension
处阻塞了
data = [dict({"sid": sid}, **{key: value for key, value in i.iteritems() if key in need_cols}) for i in v_data]
逻辑拆一下,大概如下
data = []
for i in v_data: # v_data是个较大的dict
temp = {key: value for key, value in i.iteritems() if key in need_cols} # 部分key不需要
temp["sid"] = sid # 单独加一个sid
data.append(temp)
请问这里应该如何改成异步的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
改成异步也没多大用处,你这里是计算密集型,你的费时应该在 "key in need_cols", need_cols应该也是一个很大的数组,想办法优化这块就好。
试试改成这样
自问自答
改成生成器就好了