python线程执行完后释放内存_python变量内存地址释放与加速并行计算多线程
1、導(dǎo)入numba和gc包進(jìn)行并行計(jì)算和內(nèi)存釋放
代碼如下很容易的:
#coding:utf-8
import time
from numba import jit, prange, vectorize
from numba import cuda
from numba import njit
import numpy as np
import gc
def adds(x,y,m):
return [x*i for i in range(y)]
@jit(parallel=True,nogil=True)
# @njit(parallel=True,nogil=True)
def adds1(x,y,m):
sd = np.empty((y))
for i in prange(y):
for j in range(m):
sd[i]=x*i*m
return sd
@jit(parallel=True,nogil=True)
def test(n):
temp = np.empty((50, 50)) # <--- allocation is hoisted as a loop invariant as `np.empty` is considered pure
for i in prange(n):
temp[:] = 0 # <--- this remains as assignment is a side effect
for j in range(50):
temp[j, j] = i
return temp
if __name__=="__main__":
n = 50
max = 10000**2*12
m=100
# st1 = time.time()
# val_1 = adds(n,max,m)
# print(time.time()-st1)
st2 = time.time()
val_2 = adds1(n,max,m)
print(time.time()-st2)
# 釋放內(nèi)存地址
del val_2,n,max,m
gc.collect()
st3 = time.time()
tmp = test(100**3*10)
print(time.time()-st3)
# 釋放temp的內(nèi)存地址
del tmp
gc.collect()
總結(jié)
以上是生活随笔為你收集整理的python线程执行完后释放内存_python变量内存地址释放与加速并行计算多线程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一个mapper接口有多个mapper.
- 下一篇: pythontry参数_Python —