小编Ted*_*ard的帖子

如何强制Django模型从内存中释放

我想使用管理命令对马萨诸塞州的建筑物进行一次性分析.我已经将违规代码减少为8行代码片段,演示了我遇到的问题.评论只是解释了为什么我要这样做.我在一个空白的管理命令中逐字地运行下面的代码

zips = ZipCode.objects.filter(state='MA').order_by('id')
for zip in zips.iterator():
    buildings = Building.objects.filter(boundary__within=zip.boundary)
    important_buildings = []
    for building in buildings.iterator():
        # Some conditionals would go here
        important_buildings.append(building)
    # Several types of analysis would be done on important_buildings, here
    important_buildings = None
Run Code Online (Sandbox Code Playgroud)

当我运行这个确切的代码时,我发现内存使用量随着每个迭代外部循环而稳定增加(我print('mem', process.memory_info().rss)用来检查内存使用情况).

important_buildings即使在超出范围之后,列表似乎也会占用内存.如果我替换important_buildings.append(building)_ = building.pk,它不再消耗大量内存,但我确实需要该列表进行一些分析.

所以,我的问题是:当它超出范围时,如何强制Python发布Django模型列表?

编辑:我觉得堆栈溢出有一点问题 - 如果我写了太多细节,没有人想花时间阅读它(它变成一个不太适用的问​​题),但如果我写得太少细节,我冒险忽略部分问题.无论如何,我真的很感激答案,并计划在本周末尝试一些建议,当我终于有机会回到这里!

python django memory-management django-models geodjango

15
推荐指数
2
解决办法
945
查看次数

有没有办法加快Element.scrollIntoView'平滑'的行为?什么是'自动'?

我有几个关于Element.scrollIntoView 函数的实验scrollIntoViewOptions的问题.我知道这是实验性的,但我在Chrome 65上,所以我想我也可以使用它.

  1. 这是什么意思为behavior设置为auto.在我的机器上,auto似乎表现相同instant
  2. 当我设置behaviorsmooth,并且想要滚动到表格中的某些内容时,它只会非常懒散地滚动到我想要的元素.有没有人有任何关于如何加速这种类型的动画的一般指针(如果可能的话)?我不一定需要你为我做一切,我只是不知道从哪里开始.

javascript

6
推荐指数
1
解决办法
470
查看次数

有没有办法在 Python 中导入以关键字命名的文件?

假设有一个 Python 库states,其中 50 个州中的每一个都有一个脚本,以这些州的缩写命名。

al.py
ak.py
...
or.py
...
wi.py
wy.py
Run Code Online (Sandbox Code Playgroud)

这当然不是构建代码的最佳方式。但是考虑到它存在,并且考虑到它or是一个保留关键字,是否有一种合理的方法可以为俄勒冈州编写一个包含该语句的调用方

from states import or
Run Code Online (Sandbox Code Playgroud)

或者图书馆是否必须将他们的命名约定更改为更好的东西,例如完整的状态名称。

python syntax keyword

5
推荐指数
1
解决办法
486
查看次数