當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。