相关疑难解决方法(0)

在Python中释放内存

在下面的示例中,我有一些关于内存使用的相关问题.

  1. 如果我在翻译中跑,

    foo = ['bar' for _ in xrange(10000000)]
    
    Run Code Online (Sandbox Code Playgroud)

    我机器上使用的真实内存最多80.9mb.然后,我

    del foo
    
    Run Code Online (Sandbox Code Playgroud)

    真正的记忆力下降,但仅限于30.4mb.解释器使用4.4mb基线,那么不26mb向OS 释放内存的优势是什么?是因为Python"提前规划",认为你可能会再次使用那么多内存吗?

  2. 为什么它会50.5mb特别释放- 基于此发布的金额是多少?

  3. 有没有办法强制Python释放所有使用的内存(如果你知道你不会再使用那么多内存)?

注意 这个问题不同于我如何在Python中明确释放内存? 因为这个问题主要处理从基线增加内存使用量,即使在解释器通过垃圾收集(使用gc.collect或不使用)释放对象之后.

python memory-management

122
推荐指数
4
解决办法
12万
查看次数

为什么在django中进行大量查询(或一系列查询)后内存不会释放到系统中?

首先,DEBUG = False在settings.py中,所以不,connections['default'].queries不会增长和增长,直到它耗尽所有内存.

让我们从我用10000个用户加载User表的事实开始django.contrib.auth.models.User(每个用户名为'test#',其中#是1到10000之间的数字).

这是观点:

from django.contrib.auth.models import User
from django.http import HttpResponse

import time

def leak(request):
    print "loading users"

    users = []
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users += list(User.objects.all())
    users …
Run Code Online (Sandbox Code Playgroud)

python django memory-leaks

24
推荐指数
2
解决办法
5390
查看次数

为什么字符串对象缓存在python中

这是示例:

>>> first_string = str('This_is_some_how_cached')
>>> second_string = str('This_is_some_how_cached')
>>> id(first_string) == id(second_string)
True
>>> first_string = str('This_is_new_string')
>>> second_string
'This_is_some_how_cached'
>>>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中, first_string 和 second_string 的创建方式不同,但它们具有相同的 id,这意味着它们指向相同的引用?如果是,当我将 first_string 更改为某个新字符串时,不会更新 second_string。__new__字符串类中的这个python方法是否对小字符串或?

有人可以解释一下吗?

python string

2
推荐指数
1
解决办法
1052
查看次数

标签 统计

python ×3

django ×1

memory-leaks ×1

memory-management ×1

string ×1