【问题标题】:Can Large Python Scripts Drain DiskSpace?大型 Python 脚本会耗尽磁盘空间吗?
【发布时间】:2010-01-31 10:59:23
【问题描述】:

更新: 有趣的是,差不多 15 分钟后,我似乎已经自动恢复了大约 500MB。这是怎么回事?

我使用的是 Mac OSX 10.5.6(豹)。我为 Project-Euler 问题编写了一个 python 脚本。我的脚本有一个循环,它迭代了一个巨大的计数,比如 600851475143。

在 Mac 的终端上使用 Vi 和 Python。

我跑了 5 分钟也没得到结果。 我让它一直运行直到它得到结果。然后我收到错误“您的启动盘几乎已满”。

我很震惊地看到我的磁盘只有 38MB 可用空间,而它过去至少有 1GB 可用空间。我立即终止了“终端”。但现在我不知道如何恢复我的记忆。 :(


谁能告诉我如何恢复用于执行我的脚本的内存?


这是脚本:

# Program to Find Largest Prime Factor of 600851475143

def isPrime(n):           #Check if Prime or Not
    i,notFactor=2,False
    while i<n:
        if(n%i==0):
            break
        notFactor=True
        i = i+1
    return notFactor

test = 600851475143       #Number to Test
i = test-1

while i>1:                #Finds Factors and See if they are Prime
    print i
    if test%i==0:
        if isPrime(i)==True:  #Syntax Error Fixed. Thanks, batbrat!
            print i
            break
    i=i-1

【问题讨论】:

  • 然后显示你的 Python 脚本!
  • 作为一个猜测 - 我没有 mac 了 - 使用磁盘空间可视化器之一来显示大文件是什么,然后(如果它不是你的交换空间)删除它。如果它是您的交换空间,请将交换移动到具有更多空间的其他分区。
  • “内存”是指磁盘空间?在这种情况下,我们需要查看脚本来告诉你你在哪里写东西。
  • 如果 isPrime(i) == True 你不想要:#做点什么? isprime 是一个函数...
  • 糟糕.. 我的错。改变了它。总的来说,python 和编码仍然很新。

标签: python macos memory caching loops


【解决方案1】:

脚本可以填满磁盘的唯一方法是创建大/许多临时文件并且不清理。仅仅运行一个 Python 程序本身并不能填满你的磁盘。

要恢复磁盘空间,您需要弄清楚空间的使用位置并删除临时文件。不过,不确定如何在 OSX 上做到这一点。在 Windows 和 Linux 上,有几个出色的工具可以可视化磁盘使用情况。

编辑:欧拉问题的设计目的是在一分钟内解决,即使在功能不太强大的计算机上也是如此。如果你只花 5 分钟,那么你就以错误的方式解决问题。

【讨论】:

    【解决方案2】:

    我首先想到的是您的程序使用了大量内存,导致交换文件增长。但是,从代码中我可以看到它并没有消耗太多内存。因此,这个脚本不是丢失空间的原因。

    【讨论】:

      【解决方案3】:

      那不是 python,那是你系统上使用内存的其他东西……可能是你的浏览器。

      在 Mac 上 1GB 的可用空间远远不够...您至少需要 10GB 的可用空间,所以是时候清理一下了。

      【讨论】:

        猜你喜欢
        • 2016-03-29
        • 2020-01-20
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-13
        相关资源
        最近更新 更多