在R中分析函数“库”

时间:2014-01-16 22:31:51

标签: r profiling

我正在试图找出为什么我放在一起的软件包加载缓慢(相对于其他软件包,速度明显变慢)以及运行它(使用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函数的作用吗?或者,我采取了错误的方法吗?

1 个答案:

答案 0 :(得分:3)

正如?summaryRprof行分析部分所述:

  

如果正在运行的代码保留了源参考信息(通过   keep.source = TRUE中的source或程序包中的KeepSource = TRUE   DESCRIPTION文件或其他方式),然后有关于的信息   在分析过程中记录行的起源。

默认情况下,构建/安装软件包时不保留源代码。如果你只是运行summaryRprof(),你会看到非平凡的时间。您始终可以使用KeepSource=TRUE重新安装基础软件包,但这可能比它的价值更麻烦。

另一种方法是使用debugonce(library)逐行逐步完成library调用。这有点蛮力,但它可能比梳理分析输出更明显。