python内存回收的问题

python内存回收的问题

python实际上,对于占用很大内存的对象,并不会马上释放。

举例,a=range(10000*10000),会发现内存飙升一个多G,del a 或者a=[]都不能将内存降下来。。

del 可以删除多个变量,del a,b,c,d
办法:
import gc (garbage collector)
del a
gc.collect()

马上内存就释放了。

 

 

在IPython中用run运行程序时,都是在独立的运行环境中运行,结束之后才将程序运行环境中的结果复制到IPython环境中,因此不会有变量被重复调用的问题。

如果你是指在自己的程序中想删除所有全局变量的话,可以自己编写一个clear函数,通过globals()获取全局变量然后将其中不需要的内容删除,例如下面的程序保留函数,类,模块,删除所有其它全局变量:

 

def clear():

    for key, value in globals().items():

        if callable(value) or value.__class__.__name__ == “module”:

            continue

        del globals()[key]

不过程序中应该避免这种对全局变量的依赖。你也可以在IPython下用此函数清空全局变量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119665.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 邮件编辑指南

    邮件编辑指南

    2021年7月3日
    72
  • 微信小程序-页面跳转

    微信小程序-页面跳转微信小程序-页面跳转

    2022年4月25日
    52
  • 常用的DC转DC 降压电路 MP1584EN 5V 3.3V 1.8V[通俗易懂]

    常用的DC转DC 降压电路 MP1584EN 5V 3.3V 1.8V[通俗易懂]资料参考:https://wenku.baidu.com/view/b836b110ce84b9d528ea81c758f5f61fb73628d8.html输入电压:4.5-28V输出电压:0.8-20V下图是8V-28V转5V的电路(亲测使用中)下图是4.5V-28V转1.8V参考电路下图是4.5V-28V转3.3V参考电路下图是对应不同输出电压值所调…

    2022年6月20日
    28
  • MySQL数据库备份脚本

    MySQL数据库备份脚本概述远程或者本地备份mysql数据库,并且保存最新7天的备份内容。#!/bin/sh#definevariables#thelogininformationofyourmysqldb.login_user=""login_passwd="&a

    2022年6月13日
    35
  • RNAseq数据作图_做RNAseq结果不稳定

    RNAseq数据作图_做RNAseq结果不稳定在RNA-seq项目中,常见的结果包括:火山图、韦恩图、聚类热图、log2(ratios)折线图、有向无环图、散点图、代谢通路图、蛋白互作图等。今天我们先来一起学习火山图、韦恩图、聚类热图和折线图的解读。1、火山图RNA-seq中,火山图(VolcanoPlot)显示了两个重要的指标:foldchange和校正后的pvalue,利用T检验分析出两样本间显著差异表达的基因后,以log2(f…

    2022年10月20日
    3
  • flutter下载图片到本地_禁止拍照上传图片

    flutter下载图片到本地_禁止拍照上传图片/Ios、Android应用权限开启流程/IOS应用(询问权限、开启权限)Android应用(询问权限、开启权限)/自定义选择相机和相册的对话框/创建一个存放对话框标题、相册拍照选项、关闭对话框的集合[{‘label’:’${titLab??’上传有效凭证’}’},{‘label’:’拍照’},{‘label’:’从手机相册选择’},{‘label’:’取消’},…

    2022年9月23日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号