大型Python脚本会耗尽磁盘空间吗?
更新: 有趣的是,差不多15分钟后,我似乎自动恢复了大约500MB的空间。这是怎么回事呢?
我在使用Mac OSX 10.5.6(Leopard)。我写了一个Python脚本来解决一个Project-Euler的问题。我的脚本里有一个循环,循环次数非常大,达到了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
3 个回答
0
我最开始想的是,你的程序占用了很多内存,这导致了交换文件的增大。不过,从代码来看,它并没有消耗太多内存。所以这个脚本并不是导致空间丢失的原因。
0
那不是Python,而是你系统上其他东西在占用内存……可能是你的浏览器。
1GB的空闲空间在Mac上根本不够用……你至少需要有10GB的空闲空间,所以是时候清理一下了。
2
你的脚本之所以会占满磁盘空间,唯一的原因就是它创建了很多大的临时文件,而且没有进行清理。单单运行一个Python程序是不会让你的磁盘满的。
要恢复磁盘空间,你需要找出空间是怎么被占用的,然后删除那些临时文件。不过,我不太确定在Mac上怎么做。在Windows和Linux上,有很多很好的工具可以帮助你查看磁盘使用情况。
补充一下:欧拉问题的设计是为了在一分钟内解决,即使是在性能一般的电脑上。如果你花了5分钟,那说明你可能是用错了方法。