提升R语言程序性能

1.       性能测评时间测定方法R中提供的测量时间最简单的方法是system.time函数。system.time(expr, gcFirst=TRUE)这个函数会在不降低程序运行性能的情况下,执行表达式expr,gcFrist则是指定程序运行前是否先执行垃圾回收。do.stuff <- function(){a <- 1:100000for(i in 1:100
摘要由CSDN通过智能技术生成

1.       性能测评

时间测定方法

R中提供的测量时间最简单的方法是system.time函数。

system.time(expr, gcFirst=TRUE)

这个函数会在不降低程序运行性能的情况下,执行表达式expr,gcFrist则是指定程序运行前是否先执行垃圾回收。

do.stuff <- function(){
a <- 1:100000
for(i in 1:100000){
           a[i] <- a[i]^2
}
a
}
system.time(do.stuff())

监控内存方法

R中函数gc(),有两个功能,一是立即执行一次垃圾清理,二是显示剩余内存的统计信息。

gc()

used是当前使用情况,gc trigger是会触发垃圾回收的值,max used是上次gc()操作或者是此次启动R后使用最大值。(Mb)是Ncells和Vcells的大小转换为Mb单位时的值。

Ncells即cons cells,32位R中占28B,64位R中占56B,我是用的32位的R,所以2616689*28/(1024^2) = 69.9。

Vcells即vector cells,占8B,所以63817864*8/(1024^2) = 486.9。

不是很懂Ncells和Vcells分别指的是R中的什么对象,网上也没找到很确切的说法,所以不知道应该怎么去翻译它们,有知道的朋友希望能告知,谢谢!

 

R中object.size()函数可以查看每个对象占用内存数。

object.size(1)
object.size(train)
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值