代码之家  ›  专栏  ›  技术社区  ›  SangminKim

django-queryset内存使用量的测量策略

  •  3
  • SangminKim  · 技术社区  · 6 年前

    我想测量一下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))
    
    0 回复  |  直到 6 年前