close
今天對一隻程式進行壓力測試的時候,跑一個晚上發現Python 拋出這樣一個Exception:
 IOError: [Errno 24] Too many open files:
 
這樣的問題很有可能就是某個地方沒有正確的釋放file handle
這時候如果可以知道當下握住哪些檔案就可以很容易知道是哪段程式碼有問題了
在此紀錄兩款方便的小工具
 
psutil (process and system utilities)
可以很簡單地透過程式碼列出當前開啟的檔案
import psutil
proc = psutil.Process()
print proc.open_files()
 
在windows作業系統上,也可以透過工具直接把該exe目前正在使用的檔案一次列出來
打開 Process explorer後,先切換至 View Handles
 

ViewHandles

 

接著再選擇你想要觀察的程式,就可以發現這個程式當下握住那些檔案囉!

FindFiles

 

 
arrow
arrow
    文章標籤
    python
    全站熱搜

    Chris 發表在 痞客邦 留言(0) 人氣()