django 如何从python中删除所有变量后清除RAM

kb5ga3dv  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(129)

我有一个Django项目,我需要从postgres DB中获取数据,然后使用它进行操作(postgres中为1GB)。在那之后,当我执行所有postgres数据时,我需要增加我的RAM,在另一个操作之后,像这样的RAM也增加等等...
如果我有64 GB的内存,在执行postgres数据后,我的内存增加了~1GB,那么如果我运行该函数10次,我的内存将增加~ 10 GB
我尝试用delgc删除Python中的所有变量,但之后我的RAM也满了。
清除内存的唯一方法是关闭Django项目。
在我从postgres执行数据后,是否有清除RAM的选项?
这是一个从postgres获取数据的例子。我使用psycopg2库。这是Django视图,在我进入这个视图后,它运行了这段代码。

from django.http import HttpResponse
import psycopg2

def index(request):

    con = psycopg2.connect(host="localhost", database="database", user="postgres", password="postgres")
    cur = con.cursor()

    text = "select * from table"
    cur.execute(text)

    text = cur.fetchall()

    cur.close()
    con.close()

    test_len = len(text)
    del text

    return HttpResponse(test_len)

每次我刷新页面时,我都会从中获取所有数据,并且RAM增加
再举一个例子:
当我运行python3 mnanage.py runserver我的内存是2GB,在我刷新页面后,它增加到13GB,然后下降到7.7GB,在那之后,如果我一次又一次地重新刷新,我仍然会在7.7GB上获得内存,但在我获得数据后,我删除了这个变量。为什么我仍然得到7.7GB内存?

vohkndzv

vohkndzv1#

你应该在查询后使用.iterator()
你可以阅读here

相关问题