使用 Python 类和 numpy 时内存永远不会释放

发布于 2024-11-06 10:07:02 字数 359 浏览 1 评论 0原文

基本上我不会在这里发布所有代码,但我将提供一个通用示例。我有一个类,它有一个函数来运行和创建大量值。根据我的估计,这个数组不会比 10MB 大很多。在函数中,它创建新的数组并修改应该在火车运行中的函数后收集的数组。除了返回的 tempArray 放入大数组之外,它们不在其他地方使用。这是重复的。使用的内存不断增长。我的代码或解决方法有问题吗?我在这里读到了有关 Linux 中 malloc 内存泄漏的信息: http://pushingtheweb.com/2010/06/python-and-tcmalloc/。

Basically I am not going to post all of the code here but I will provide a generic example. I have a class that has a function to run and create a large array of values. This array shouldn't be much bigger than 10MB from my estimates. Within the functions it makes new and modifies arrays that should be collected up after the functions within train run. They are not used elsewhere besides the returned tempArray which is put into the large array. This is repeated. The memory used just keeps growing and growing. Is there an issue with my code or a way around this. I have read here about memory leaks with the malloc in Linux:
http://pushingtheweb.com/2010/06/python-and-tcmalloc/.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无可置疑 2024-11-13 10:07:02

你想做什么?

temp = self.largeArray = zeros((1000,1000,10,20))
for y in temp.size:
    for x in temp1.size:
        self.largeArray[x,y] = train()

temp.size 等于 200,000,000。如果这个数组的第二个维度只有 1000,如何将任何内容存储到 largeArray[x,y] 中?

What are you trying to do?

temp = self.largeArray = zeros((1000,1000,10,20))
for y in temp.size:
    for x in temp1.size:
        self.largeArray[x,y] = train()

temp.size equals 200,000,000. How can you store anything into largeArray[x,y] if the second dimension of this array is only 1000?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文