相关疑难解决方法(0)

删除变量不会从 RAM 内存中擦除其内存

我在地球科学应用中广泛使用 Python(Canopy)。因为我的应用程序是内存消耗,我试图找到方法来擦除我的程序中不再需要的变量,我尝试使用 del 命令来擦除变量内存,但我发现 Canopy 使用的空间仍然是相同的。关于如何从内存中完全擦除变量的任何想法。谢谢

python python-2.7 canopy

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

Gunicorn 工人在请求后不会压缩内存

我有一个单一的 gunicorn 工作进程正在运行以读取一个巨大的 excel 文件,该文件最多需要 5 分钟并使用 4GB 的 RAM。但是在请求完成处理后,我在系统监视器上注意到它仍然永远分配 4GB 的 RAM。关于如何释放内存的任何想法?

python gunicorn

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

CPython 的垃圾收集是否会进行压缩?

我正在和一个朋友聊天,比较语言,他提到 Java 的自动内存管理优于 Python,因为 Java 的压缩,而 Python 则没有——因此对于长时间运行的服务器,Python 是一个糟糕的选择。

没有进入哪个更好或更坏,他的说法是否正确 - CPython 的垃圾收集器是否不会压缩内存,因此,长时间运行的 Python 进程是否会随着时间的推移变得越来越碎片化?

我知道运行 CPython 的垃圾收集器是可选的。大多数情况下,它使用自动引用计数进行自动内存管理,一旦引用计数达到零,对象就会被释放——因此,就释放对象而言,CPython 的垃圾收集器唯一需要做的就是检测没有根集中的对象有一个引用。但我不知道除此之外它是否进行任何压缩的细节。

如果没有,那么长时间运行的 CPython 进程如何解决内存碎片问题?

python garbage-collection memory-management cpython

4
推荐指数
1
解决办法
707
查看次数

Python:无法复制内存使用情况的测试

我试图在这里复制内存使用测试.

从本质上讲,帖子声称给出了以下代码片段:

import copy
import memory_profiler

@profile
def function():
    x = list(range(1000000))  # allocate a big list
    y = copy.deepcopy(x)
    del x
    return y

if __name__ == "__main__":
    function()
Run Code Online (Sandbox Code Playgroud)

调用

python -m memory_profiler memory-profile-me.py
Run Code Online (Sandbox Code Playgroud)

在64位计算机上打印

Filename: memory-profile-me.py

Line #    Mem usage    Increment   Line Contents
================================================
 4                             @profile
 5      9.11 MB      0.00 MB   def function():
 6     40.05 MB     30.94 MB       x = list(range(1000000)) # allocate a big list
 7     89.73 MB     49.68 MB       y = copy.deepcopy(x)
 8     82.10 MB …
Run Code Online (Sandbox Code Playgroud)

python memory memory-management memory-profiling

4
推荐指数
1
解决办法
162
查看次数

python 是否在相等比较中为字符串常量创建一个对象?

在python中进行这样的比较,python是否为字符串常量“help”创建了一个临时对象,然后继续进行相等比较?该对象将在某个时间点后被垃圾回收。

s1 = "nohelp"
if s1 == "help":
   # Blah Blah
Run Code Online (Sandbox Code Playgroud)

python

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