日志函数–R性能

R ldboyghg 33℃ 0评论
R性能
system.time(函数()),可以看到运行的时间
# 查看性能日志 在文件中查看(当前工作目录中)
file1<-“rec_itm_for_user_rprof.out” # 函数_rprof.out
Rprof(file1)
rec_itm_for_user(6)
Rprof(NULL)
summaryRprof(file1) # 主要看这个。可以看到详细内容
Rprof()函数是R语言核心包自带的一个新能数据日志函数,可以打印出函数的调用关系和CPU耗时的数据。然后通过summaryRprof()函数分析Rprof()生成的日志数据,
获得性能报告,最后使用profr库的plot()函数,对报告进行可视化。
> bi <- read.table(“D:\\aa.txt”,header=F)
> head(bi)
        V1     V2     V3   V4    V5   V6    V7
1 20130714 145004 131810 2.62  6960 2.64 13000
2 20130714 145005 131811 3.62  7960 3.64 13001
3 20130714 145006 131812 4.62  8960 4.64 13002
4 20130714 145007 131813 5.62  9960 5.64 13003
5 20130714 145008 131814 6.62 10960 6.64 13004
6 20130714 145009 131815 7.62 11960 7.64 13005
> names(bi) = c(‘date’,’time’,’id’,’price1′,’size1′,’price2′,’size2′)
library(plyr)
fun1<-function(){#############数据处理封装到fun1()函数
datahour<-paste(bi$date,substr(bi$time,1,2),sep=””)
#df <- cbind(datahour,bi[,3:5])
ddply(bi,.(id,datahour),summarize,price = mean(price1),size = sum(size1))###############3根据id和datahour进行分类,计算price1的均值和size1的加和
}
>system.time(fun1())
用户 系统 流逝
0.02 0.00 0.02
> system.time(fun1())
用户 系统 流逝
   0    0    0
> file <- ‘fun1_rprof.out’ #$########定义性能日志的输出文件位置
> Rprof(file)                ####################开始性能监控
> fun1() ########执行计算函数
> Rprof(NULL) ##########停止性能监控,并输出到文件
> summaryRprof(file)     #####################读入文件
输出:
$by.self
         self.time self.pct total.time total.pct
“unlist”      0.02      100       0.02       100
$by.total
                    total.time total.pct self.time self.pct
“unlist”                  0.02       100      0.02      100
“ddply”                   0.02       100      0.00        0
“fun1″                    0.02       100      0.00        0
“ldply”                   0.02       100      0.00        0
“list_to_dataframe”       0.02       100      0.00        0
$sample.interval
[1] 0.02
$sampling.time
[1] 0.02
$by.self 是当前函数的耗时情况,其中self.time为实际运行时间,total.time为累计运行时间
$by.total 是整体函数调用的耗时情况,其中self.time为实际运行时间,total.time为累计运行时间
从$by.self观察,
unlist :事先运行0.02s,站当前函数时间的100%。
从$by.total观察:
fun1 :累计运行时间0.02s,占总累计运行时间的100%,实际运行时间为0
unlist:累计运行时间0.02s,占总累计运行时间的100%,实际运行时间为0.
这样我们就知道了每个调用函数的CPU时间,进行性能优化就从最耗时的函数开始。

转载请注明:生命不息,奋斗不止 » 日志函数–R性能

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址