[转载]R语言内存管理
来源:互联网 发布:svg.js 对比 编辑:程序博客网 时间:2024/06/11 00:31
转自:R语言内存管理
参考资料2
R中的对象(比如矩阵)在内存中存于两种不同的地方:
- 第一种是堆内存(heap),其基本单元是“Vcells”,每个大小为8字节,新来一个对象就会申请一块空间,把值全部存在这里,和C里面的堆内存很像;
- 第二种是地址对(cons cells),主要用来存储地址信息,最小单元一般在32位系统中是28字节、64位系统中是56字节。
- ls()来查看当前所有对象名,对于每一个对象,可以通过object.size(x)来查看其占用内存的大小。
如果是因为当前对象占用内存过多,那么可以通过处理对象来获取更大的可用内存。一个很有用的方法是改变对象的存储模式,通过storage.mode(x)可以看到某个对象的存储模式,比如某个矩阵默认就是“double”的,如果这个矩阵的数值都是整数甚至0-1,完全没必要使用double来占用空间,可以使用storage.mode(x) <- “integer”将其改为整数型,可以看到该对象的大小会变为原来的一半。 - object.size()看每个变量占多大内存。
- memory.size()查看现在的work space的内存使用
- memory.limit()查看系统规定的内存使用上限。
如果现在的内存上限不够用,可以通memory.limit(newLimit)更改到一个新的上限。注意,在32位的R中,封顶上限为4G,无法在一个程序上使用超过4G (数位上限)。这种时候,可以考虑使用64位的版本。
对于一些很大的但无用的中间变量,养成清理的习惯:
可以使用rm(object)删除变量,但是记住,rm后记得使用gc()做Garbage collection,否则内存是不会自动释放的,相当于你没做rm.
0 0
- [转载]R语言内存管理
- R语言-内存管理
- R语言内存管理
- R语言内存管理
- Object C语言----内存管理总结(转载)
- R语言︱大数据集下运行内存管理
- R语言学习(转载)
- 【转载】JVM内存管理
- OC内存管理(转载)
- OC内存管理(转载)
- 【转载】JAVA内存管理
- [转载]MATLAB内存管理
- 内存管理(转载)
- 【转载】java内存管理
- R语言之内存管理
- R语言之内存管理
- R语言数据基本管理
- R 语言 MySql连接管理
- SpringMVC拦截器应用(实现登陆认证)
- button添加内容的另类方法
- 融云自定义扩展功能
- iOS内购充值 服务器端处理
- python conda mac安装
- [转载]R语言内存管理
- [leetcode: Python]345. Reverse Vowels of a String
- Android之jni日志如何输出
- 蛇形填数
- 2.4 scrapy的重要对象request和response
- 复杂链表的复制(java版)
- 尝试封装一个自己的模块
- POJ2376--Cleaning Shifts(贪心)
- HTML5 嵌入与APP时,调用IOS或者安卓的相机