【发布时间】:2021-02-08 09:16:45
【问题描述】:
我有一个变量 obj=model.filter(id=id),我有 打印函数 显示 obj 值。我用pref_counter()测量它需要超过2秒。
我的代码是这样的
obj=model.filter(id=id)
c = time.perf_counter()
print(obj)
d = time.perf_counter()
print("seconds", d - c) #shows 2 seconds
有趣的是,如果我打印两次,需要 4 秒。
【问题讨论】:
-
我想这不是打印占用太多,但
model.filter()确实如此。在第一行没有对 DB 的请求,因为它使用了惰性请求。当您尝试打印时,请求本身仅适用于 3d 行。 -
您可以将模型添加到问题中吗?打印查询集将导致它获取前几个结果并将它们包含在打印中,您是在做一些复杂的事情还是在模型的
__str__方法中访问相关对象?
标签: python python-3.x django list performance