我想测量 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))
Run Code Online (Sandbox Code Playgroud)
由于迭代queryset,Django将访问数据库并且结果将被缓存,并且通过获取 Python 进程的内存使用情况,我尝试测量queryset内存使用情况。
我想知道访问是否正确或者有什么方法可以衡量我的目标,你们知道。
此度量是为了预测在尝试获取大量查询结果时是否会出现任何问题,如果存在,则根据会导致问题的行数进行预测。
我知道如果我想避免缓存queryset结果,我可以使用iterator(). 然而,iterator()还应该确定chunk_size参数来减少命中数据库的次数,并且内存使用量会根据不同的情况而有所不同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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
625 次 |
| 最近记录: |