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下用此函数清空全局变量。

最新文章

  1. Javascript中构造函数与new命令
  2. c# 正则表达式用法
  3. 檢查RAC狀態
  4. [译]JavaScript检测浏览器前缀
  5. (转).net webconfig使用IConfigurationSectionHandler自定section
  6. 数据传输对象(DTO)介绍及各类型实体比较
  7. 自己动手写spring容器(3)
  8. 利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
  9. C语言程序设计课程总结
  10. 二分查找算法的java实现
  11. Java 容器源码分析之 Map
  12. ipv6下jdbc的连接数据库方式
  13. fastJson顺序遍历JSON字段(转)
  14. databus编译: Execution failed for task ':databus-core:databus-core-impl:compileJava'.
  15. 最长上升子序列 OpenJ_Bailian - 2757 dp模板
  16. QT学习笔记6:常见的 QGraphicsItem
  17. JS仿淘宝左侧菜单
  18. 调试日志——基于stm32的智能声光报警器(一)
  19. Python中__new__()方法的使用和实例化
  20. 优秀前端工程师必备: (总结) 清除原生ios按钮样式

热门文章

  1. ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程
  2. Api管家系列(一):初探
  3. C# XML序列化/反序列化参考
  4. 暖春许愿季丨i春秋给你送福利
  5. Python基础(max,min方法)
  6. [截稿日期] 人机交互与普适计算方向的A、B类国际会议
  7. ToolbarDemo【Toolbar作为顶部导航栏的简单使用】
  8. GetTypes Unable to load one or more of the requested types
  9. kernel 进阶API
  10. Vue Mixin 与微信小程序 Mixins 应用