Изменения

R:Профилирование кода

455 байтов добавлено, 14:00, 19 февраля 2014
м
Нет описания правки
{{r-code|code=
<nowiki>
> x <- rnorm(10^6)
</nowiki>
}}
{{r-code|code=
<nowiki>
<nowiki>Вставьте сюда текст, который не нужно форматировать</nowiki>
desc <- function(x) {
n <- length(x)
return(c(n, mean, median, sd, min, max))
}
</nowiki>
}}
{{r-code|code=
<nowiki>
> tmp.log <- tempfile(pattern = "prof-", fileext = ".log")
</nowiki>
}}
{{r-code|code=
<nowiki>
> tmp.log
[1] "/tmp/RtmpAvhCfO/prof-23b61d761805.log"
</nowiki>
}}
{{r-code|code=
<nowiki>
# Включаем профилирование
> Rprof(tmp.log)
# отключаем профилирование
> Rprof(NULL)
</nowiki>
}}
{{r-code|code=
<nowiki>
> summaryRprof(tmp.log)
</nowiki>
}}
{{r-code|code=
<nowiki>
> unlink(tmp.log)
</nowiki>
}}
{{r-code|code=
<nowiki>
> summaryRprof(tmp.log)
$by.self
$sampling.time
[1] 4.82
</nowiki>
}}
{{r-code|code=
<nowiki>
> Rprof(tmp.log, line.profiling = TRUE)
> source("/path/scritpt.R")
> summaryRprof(tmp.log)
> unlink(tmp.log)
</nowiki>
}}
{{r-code|code=
<nowiki>
> library(proftools)
> flatProfile(readProfileData(tmp.log))
max 5.39 0.26 5.39 0.26
mean.default 3.73 0.18 3.73 0.18
</nowiki>
}}
{{r-code|code=
<nowiki>
> library(profr)
> prof <- profr(desc(x))
16 sort.default 6 0.02 0.00 0.02 FALSE base
17 sort.int 7 0.02 0.00 0.02 TRUE base
</nowiki>
}}
{{r-code|code=
<nowiki>
> ggplot(prof)
</nowiki>
}}
{{r-code|code=
<nowiki>
> library(devtools)
> source_url("https://bitbucket.org/psylab/r-scripts/raw/master/proftable.R")
</nowiki>
}}
{{file|lang=r|subtitle=/tmp/script.R|code=
<nowiki>
desc <- function(x) {
n <- length(x)
for (i in seq_len(100)) desc(x)
</nowiki>
}}
{{r-code|code=
<nowiki>
> Rprof(tmp.log, line.profiling = TRUE)
> source("/tmp/script.R")
> Rprof(NULL)
</nowiki>
}}
{{r-code|code=
<nowiki>
> proftable(tmp.log)
PctTime Call
Total Time: 4.48 seconds
Percent of run time represented: 100%
</nowiki>
}}
{{r-code|code=
<nowiki>
getAnywhere(median.default)
A single object matching ‘median.default’ was found
<bytecode: 0x3c8f828>
<environment: namespace:stats>
</nowiki>
}}
{{r-code|code=
<nowiki>
desc <- function(x) {
n <- length(x)
return(c(n, mean, median, sd, min, max))
}
</nowiki>
}}