我用python搜索了很多關於VMware的問題,但是我沒有找到任何有關我的問題的信息。 我的問題是,python程序凍結,進程仍在運行,但它不使用CPU和內存使用情況不會改變。 程序不會返回任何異常或任何東西......它只是凍結,它永遠不會執行。 它看起來是隨機發生的,它不是我的機器沒有可用內存的問題,因爲在同一時間我可以在另一個會話中執行它。python程序在命令行中停止
我的機器是虛擬機:在Windows Server 2008 64位的VMware Tools 9.4.5
我試圖蟒蛇:2.7,3.3和3.4
我的示例腳本:(但不僅限於此腳本凍結)
print("START")
for i in range(0, 1000):
print("step: " + str(i))
file = open("./test_file.csv", "r") #file size is 1.2GB but I have 10GB RAM
for line in file.readlines():
pass
file.close() #close the file
print("END")
例如輸出爲:
START
step 0
step 1
step 2
step 3
step 4
和它凍結,它隨機在哪一步(有時4,15,34 ...)我所能做的就是殺死進程並再次運行。 在執行過程中,我可以看到程序可重複使用1,2GB內存,並釋放...使用和釋放。 Freeze始終在釋放內存之後,從此時間開始內存使用情況穩定並且此過程的CPU使用率爲0%。
我在IDLE中使用調試器和堆棧查看器來運行腳本,但是當程序凍結時,整個空閒都沒有響應。 另外我在別人的虛擬機上試過它,沒有問題。
我將不勝感激任何建議,如何解決或調試那種類型的問題。
你提到你有10GB的內存,但是......你的意思是主機有10GB的物理內存,或者你已經爲你的虛擬機分配了10GB的RAM?這聽起來像你的虛擬機內存不足。 – evadeflow