释放内存和加速python程序运行的一些经验和方法
释放内存的方法
python的gc模块
有些时候在运行python程序的时候,往往会因为变量太多而造成内存警告,导致程序crash,为了解决这个问题,可以使用gc模块删除每一步程序运行之后不必要的变量,达到释放内存的目的。
具体使用方法如下:
import gc
#.....产生了一堆变量 a,b,c......
del a
gc.collect()
#.....完成......
CPU上加速python程序运行的方法
在运行python程序的时候,因为过多的循环而导致程序运行缓慢,影响数据分析速度,当然在GPU上面运行程序会显著提升速度,但是因为本人还在学习中,具体还没实现过,所以先在此总结一下在CPU上面加速python程序运行的方法,如有不当之处,还请各位不吝赐教。
python的numba模块
numba模块支持numpy,而不支持list的数据类型,所以如果出现list类型会出现warning和error,这一点需要注意。
使用方法如下:
from numba import jit
@jit
def RP(x,y):
delt=np.std(np.abs(x-y))
e=0.15*delt
h=np.zeros([len(x),len(y)])
for i in range(len(x)):
for j in range(i,len(y)):
h[i,j]=1 if (e-np.abs(x[i]-y[j]))>=0 else 0
h[j,i]=h[i,j]
return h
python的threading模块
threading的使用方法如下:
import threading
#定义一个方法和函数
def fun():
......
return **
#t1和t2是两个不同的任务,可以是同一个函数,输入不同,也可以是不同的函数
t1=threading.Thread(target=fun())
t2=threading.Thread(target=fun())
t1.start()
t2.start()