当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R summaryRprof 总结 R 采样分析器的输出


R语言 summaryRprof 位于 utils 包(package)。

说明

总结一下输出Rprof函数可显示不同时间使用的时间量R职能。

用法

summaryRprof(filename = "Rprof.out", chunksize = 5000,
              memory = c("none", "both", "tseries", "stats"),
              lines = c("hide", "show", "both"),
              index = 2, diff = TRUE, exclude = NULL,
              basenames = 1)

参数

filename

Rprof() 生成的文件的名称。

chunksize

一次读取的行数。

memory

内存信息摘要。请参阅下面的“内存分析”。可以缩写。

lines

线路信息摘要。请参阅下面的“线路分析”。可以缩写。

index

如何总结内存信息的堆栈跟踪。请参阅下面的“详细信息”。

diff

如果 TRUE 内存摘要使用内存中的更改而不是当前内存。

exclude

总结内存摘要的堆栈跟踪时要排除的函数。

basenames

要显示的文件名路径的组成部分的数量。

细节

该函数提供R CMD Rprof使用的Rprof文件的分析代码。

由于分析输出文件可能大于可用内存,因此以 chunksize 行块的形式读取它。如果有足够的可用内存,增加 chunksize 将使函数运行得更快。

如果 memory = "none"lines = "hide" ,则包含组件的列表

by.self

按‘self’时间排序的时序数据帧。

by.total

按‘total’时间排序的时序数据帧。

sample.interval

采样间隔。

sampling.time

分析运行的总时间。

前两个组件有列‘⁠自我时间⁠', '⁠self.pct⁠', '⁠总时间⁠' 和 '⁠总计.pct⁠’,分别是执行该函数中的代码和该函数中的代码或从该函数调用的代码所花费的总时间(以秒为单位)和百分比。

如果是 lines = "show" ,则会将附加组件添加到列表中:

by.line

按源位置排序的时序数据帧。

如果 memory = "both" 相同的列表,但除了计时之外还具有以 Mb 为单位的内存消耗。

如果memory = "tseries" 是一个数据帧,提供一段时间内的内存统计信息。内存使用量以字节为单位。

如果 memory = "stats" 是一个 by 对象,按函数提供内存统计信息。内存使用量以字节为单位。

如果没有记录任何事件,则返回 zero-row 数据帧。

内存分析

memory = "none" 以外的选项仅适用于 Rprof(memory.profiling = TRUE) 生成的文件。

当使用 memory.profiling = TRUE 调用时,探查器会写入有关内存使用三个方面的信息:R 堆上小块中的向量内存、大块中的向量内存(来自 malloc )、R 堆上节点中的内存。它还记录在时间间隔内调用内部函数duplicate的次数。当需要复制参数时,duplicate 由 C 代码调用。请注意,探查器不会跟踪实际分配内存的函数。

对于memory = "both",除了计时数据之外,还会报告总内存的变化(截断为零)。

对于 memory = "tseries"memory = "stats"index 参数指定如何汇总堆栈跟踪。正数表示来自堆栈底部的调用次数;负数指定从堆栈顶部开始的调用次数。对于memory = "tseries",索引用于构造标签,并且可以是给出多组标签的向量。对于memory = "stats",索引必须是单个数字,并指定如何将数据聚合到内存统计信息的最大值和平均值。对于 memory = "tseries"memory = "stats",参数 diff = TRUE 要求提供采样间隔内内存使用增加的摘要,而 diff = FALSE 则要求提供采样间隔结束时的内存使用情况。

线路剖析

如果正在运行的代码保留了源参考信息(通过keep.source = TRUEsource或者KeepSource = TRUE在一个包中‘DESCRIPTION’文件或其他方式),然后在分析过程中记录有关行起源的信息。默认情况下不显示,但lines参数可以启用显示。

如果是 lines = "show" ,则将优先使用行位置而不是通常的函数名称信息,并且除了其他顺序之外,结果还将按位置排序显示。

如果是 lines = "both" ,则行位置将与组合显示中的函数名称混合。

例子

## Not run: 
## Rprof() is not available on all platforms
Rprof(tmp <- tempfile())
example(glm)
Rprof()
summaryRprof(tmp)
unlink(tmp)

## End(Not run)

也可以看看

“编写 R 扩展”中有关“整理和分析 R 代码”的章节(请参阅“文档/手册’的子目录R源树)。

Rprof

tracemem 通过 C 函数 duplicate 跟踪对象的复制。

Rprofmem 是非采样memory-use 分析器。

https://developer.r-project.org/memory-profiling.html

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Summarise Output of R Sampling Profiler。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。