R语言内存管理
来源:互联网 发布:中国股市现状 知乎 编辑:程序博客网 时间:2024/06/11 06:25
R中的对象(比如矩阵)在内存中存于两种不同的地方:
第一种是堆内存(heap),其基本单元是“Vcells”,每个大小为8字节,新来一个对象就会申请一块空间,把值全部存在这里,和C里面的堆内存很像;
第二种是地址对(cons cells),主要用来存储地址信息,最小单元一般在32位系统中是28字节、64位系统中是56字节。
1、ls()来查看当前所有对象名,对于每一个对象,可以通过object.size(x)来查看其占用内存的大小。
如果是因为当前对象占用内存过多,那么可以通过处理对象来获取更大的可用内存。一个很有用的方法是改变对象的存储模式,通过storage.mode(x)可以看到某个对象的存储模式,比如某个矩阵默认就是“double”的,如果这个矩阵的数值都是整数甚至0-1,完全没必要使用double来占用空间,可以使用storage.mode(x) <- "integer"将其改为整数型,可以看到该对象的大小会变为原来的一半。
2、object.size()看每个变量占多大内存。
3、memory.size()查看现在的work space的内存使用
4、memory.limit()查看系统规定的内存使用上限。如果现在的内存上限不够用,可以通过memory.limit(newLimit)更改到一个新的上限。注意,在32位的R中,封顶上限为4G,无法在一个程序上使用超过4G (数位上限)。这种时候,可以考虑使用64位的版本。
对于一些很大的但无用的中间变量,养成清理的习惯:
可以使用rm(object)删除变量,但是记住,rm后记得使用gc()做Garbage collection,否则内存是不会自动释放的,相当于你没做rm.
原文地址:http://blog.sina.com.cn/s/blog_72d544900101bzox.html
0 0
- R语言-内存管理
- R语言内存管理
- R语言内存管理
- [转载]R语言内存管理
- R语言︱大数据集下运行内存管理
- R语言之内存管理
- R语言之内存管理
- R语言数据基本管理
- R 语言 MySql连接管理
- R语言进行文件管理
- C语言内存管理
- C语言内存管理
- C语言内存管理
- C语言内存管理
- C语言-内存管理
- C语言内存管理
- C语言内存管理
- c语言 内存管理
- hdu5000 Clone dp
- Java线程之线程的五种状态
- lightoj 1021 从当前转移到其他状态的状压dp
- Java基础——实现UDP发送数据和接收数据
- 数据库实战(四)数据库主从复制
- R语言内存管理
- 常用less
- 极光推送注册、接收、点击打开推送通知
- Python学习笔记
- trie树字典树的插入和删除
- 第一行代码笔记,第六章-----详解数据存储
- 第十课 使用java开发spark 实战
- android 自定义View 的详细介绍
- 读取plist文件中的数据