我想测量一下django的记忆力
queryset
使用。
例如,我尝试简单的方法。
import psutil
process = psutil.Process(os.getpid())
s = process.memory_info().rss # in bytes
for i in queryset:
pass
e = process.memory_info().rss # in bytes
print('queryset memory: %s' % (e-s))
自迭代以来
查询集
,
Django
将命中一个数据库,结果将被缓存,通过获取python进程的内存使用情况,我尝试测量
查询集
内存使用。
我想知道我的目标是正确的还是有办法衡量的,你们知道。
这个度量是为了预测在试图获取大量查询结果时是否会出现问题,以及是否存在问题,从导致问题的行数中预测。
我知道如果我想避免缓存
查询集
结果,我可以用
iterator()
.
然而,
迭代器()
也应该确定
chunk_size
减少命中数据库数和内存使用量的参数将根据
春尺码
.
import psutil
process = psutil.Process(os.getpid())
s = process.memory_info().rss # in bytes
for i in queryset.iterator(chunk_size=10000):
pass
e = process.memory_info().rss # in bytes
print('queryset memory: %s' % (e-s))