python脚本内存占用过大的解决

上一篇 / 下一篇  2015-01-30 10:04:26 / 个人分类:python

from multiprocessing import Process
import telnetlib
import time


commands = "get "
count = 0


def telnetDo(num):
    tn = telnetlib.Telnet('xxxxx',7777)
    for i in range(50000000):
       tn.write(commands+"\r\n")
       temp = tn.read_some()
       print "telnetDo-"+str(num)+":"+temp[15:36]

jobs = []

for i in range(8):
    p = Process(target=telnetDo,args=(i,))
    jobs.append(p)
    time.sleep(1)
    p.start()
================
以上的脚本在执行时每个进程占用1G多的内存,导致服务器卡顿。并且执行效率不高。
解决方法:将rang改成xrange
因为rang是list,python在执行时会直接划一块内存来使用,而xrange是采用生成器 一个一个的执行。修改之后每个进程的占用内存数稳定在5M左右。内存占用降低的很明显

TAG:

 

评分:0

我来说两句

Open Toolbar