我正在试图找出为什么我放在一起的软件包加载缓慢(相对于其他软件包,速度明显变慢)以及运行它(使用ggplot2
作为示例)的原因似乎没有任何见解:
Rprof(line.profiling=TRUE)
library(ggplot2)
Rprof(NULL)
summaryRprof("Rprof.out", lines = "show")
产生:
$by.self
self.time self.pct total.time total.pct
<no location> 0.5 100 0.5 100
$by.total
total.time total.pct self.time self.pct
<no location> 0.5 100 0.5 100
$by.line
self.time self.pct total.time total.pct
<no location> 0.5 100 0.5 100
$sample.interval
[1] 0.02
$sampling.time
[1] 0.5
(Rprof.out
包含一堆我无法理解的信息。)
有人可以建议我如何“概述”library
函数的作用吗?或者,我采取了错误的方法吗?
答案 0 :(得分:3)
正如?summaryRprof
的行分析部分所述:
如果正在运行的代码保留了源参考信息(通过
keep.source = TRUE
中的source
或程序包中的KeepSource = TRUE
DESCRIPTION
文件或其他方式),然后有关于的信息 在分析过程中记录行的起源。
默认情况下,构建/安装软件包时不保留源代码。如果你只是运行summaryRprof()
,你会看到非平凡的时间。您始终可以使用KeepSource=TRUE
重新安装基础软件包,但这可能比它的价值更麻烦。
另一种方法是使用debugonce(library)
逐行逐步完成library
调用。这有点蛮力,但它可能比梳理分析输出更明显。