粗略測試方式:
- 寫一隻程式,最後一行跑 loop 讓程式不會結束,或是讀 io卡住也行
- 用 ps 得知此程式 pid,接著翻 /proc/pid/status 出來
import time
data = open('tmp').read()
i = 1000
co = []
while i > 0 :
#co.append(str(data)+"1")
#co.append(str(data)+"")
co.append(str(data))
i -= 1
print "Done:", len(co)
while True:
time.sleep(1)
連續動作:
$ ps aux | grep test.py | grep -v "grep\|vim" | awk '{system("cat /proc/"$2"/status");}' | grep -i "pid\|vm\|name"
當 co.append(str(data)) 跟 co.append(str(data)+"") 時,i 數值變大對記憶體增加不多:
Name: python
Pid: 12180
PPid: 11910
TracerPid: 0
VmPeak: 32532 kB
VmSize: 32532 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 5676 kB
VmRSS: 5676 kB
VmData: 2700 kB
VmStk: 136 kB
VmExe: 2496 kB
VmLib: 5240 kB
VmPTE: 72 kB
VmSwap: 0 kB
但 co.append(str(data)+" ") 時,i 數值變大對記憶體就開始噴了:
Name: python
Pid: 12189
PPid: 11910
TracerPid: 0
VmPeak: 340532 kB
VmSize: 340532 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 313496 kB
VmRSS: 313496 kB
VmData: 310700 kB
VmStk: 136 kB
VmExe: 2496 kB
VmLib: 5240 kB
VmPTE: 680 kB
VmSwap: 0 kB
沒有留言:
張貼留言