1、导入numba和gc包进行并行计算和内存释放

  代码如下很容易的:

#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)
# 释放内存地址
del val_2,n,max,m
gc.collect() st3 = time.time()
tmp = test(100**3*10)
print(time.time()-st3)
# 释放temp的内存地址
del tmp
gc.collect()

  

python变量内存地址释放与加速并行计算多线程的更多相关文章

  1. 07_Python变量内存地址、小数据池

    一.变量在内存中的地址 变量:用来标识(identify)一块内存区域.为了方便表示内存,我们操作变量实质上是在操作变量指向的那块内存单元.编译器负责分配.我们可以使用Python内建函数id()来获 ...

  2. Python变量内存管理

    目录 一.变量存哪了? 二.Python垃圾回收机制 2.1 引用计数 三.小整数池 一.变量存哪了? x = 10 当我们在p1.py中定义一个变量x = 10,那么计算机把这个变量值10存放在哪里 ...

  3. python中内存地址

    遇到一个朋友,给我提了一个问题:python中的两个相同的值,内存地址是否一样? 当时印象里有这样一句话:Python采用基于值的内存管理模式,相同的值在内存中只有一份 于是张嘴就说是一样的 朋友说不 ...

  4. python获取内存地址上存储的值

    在python中,可以通过id()这个方法来获取对象的内存地址. 但是反过来,怎么获取内存地址上存储的值? 先看一段代码: from ctypes import string_at from sys ...

  5. php变量内存完全释放

    <?php echo memory_get_usage().PHP_EOL;$a = 1;$b = $a;$a = null;$b = null;unset($a);unset($b);echo ...

  6. python变量的内存机制

    python变量的内存机制 作为一门简单易用的语言,且配备海量的库,python可谓是程序员手中的掌中宝,编程本身就是一种将人类思维转化为计算机思维的技术,如果不需要去追求极致的运行效率同时又不限制于 ...

  7. python的内存管理机制

    先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事先声明变量 ...

  8. python的内存管理机制(zz)

    本文转载自:http://www.cnblogs.com/CBDoctor/p/3781078.html 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计 ...

  9. 6.Python中内存是如何管理的?

    Python中内存是如何管理的? Python memory is managed by Python private heap space. All Python objects and data ...

随机推荐

  1. 《统计学习方法》P179页10.22前向后向算法公式推导

  2. Hibernate性能优化之SessionFactory重用

    Hibernate优化的方式有很多,如缓存.延迟加载以及与SQL合理映射,通过对SessionFactory使用的优化是最基础的. SessionFactory负责创建Session实例,Sessio ...

  3. 浏览器本地存储(browser-storage)

    https://www.baidufe.com/component/browser-storage/api.html 首页 | API参考 | 升级日志 BrowserStorage.api.set( ...

  4. UVAlive3211_Now or later

    白书上的例题. 每种航班可以选择两种时间降落,如果想任意航班降落时间差的最小值最大,应该如何安排? 二分时间,如果两个时间只差小于当前枚举的时间,说明这条边不可选,可以根据2sat的方法构图. 然后判 ...

  5. spring注解方式注入

    1.通过Resource注入 1.在属性上注入 1.默认注入 即不指定spring容器里面的名字 匹配规则:先通过属性的名字查找 再通过属性类型与实现类类型匹配查找 当有两个实现类会报错 2.通过指定 ...

  6. ADO.NET:C#/SQL Server

    1.首次要准备的(工具)是:a.Microsoft Visual Studio Ultimate 2012;b.Microsoft SQL Server Management Studio ; 2.首 ...

  7. 洛谷 P1777 帮助_NOI导刊2010提高(03) 解题报告

    P1777 帮助_NOI导刊2010提高(03) 题目描述 Bubu的书架乱成一团了!帮他一下吧! 他的书架上一共有n本书.我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31 ...

  8. myeclipse2015修改web项目部署名

    在旧版本的myeclipse中修改web项目部署名很方便,直接右键在properties中查找web就能进行修改. 但是myeclipse2015中发现不能直接修改了. 我们可以点击config,或者 ...

  9. Android字体设置

    // 自定义字体custom = new TextView(this);//xx.ttf located at assets/fonts/typeface = Typeface.createFromA ...

  10. 【bzoj2741】[FOTILE模拟赛] L

    Portal --> bzoj2741 Solution 突然沉迷分块不能自拔 考虑用分块+可持久化trie来解决这个问题 对于每一块的块头\(L\),预处理\([L,i]\)区间内的所有子区间 ...