Defines a data structure for profiler data, and methods to read and write from the 'Rprof' and 'pprof' file formats.
The goal of profile is to read and write files that contain run time profiling data. Currently, profile supports:
Rprof().proto files written by pprof -proto, these can also be read by pprofThe data is available to the user for inspection and manipulation in a documented stable data format.
You can install profile from GitHub with:
# install.packages("remotes") remotes::install_github("r-prof/profile")
This simple example converts an .out file generated by Rprof() to the .proto format understood by pprof.
rprof_path <- tempfile("profile", fileext = ".out") Rprof(rprof_path, line.profiling = TRUE) x <- runif(1e6) res <- vapply(x, function(x) if (x < 0.5) sqrt(x) else x * x, numeric(1)) Rprof(NULL) library(profile) ds <- read_rprof(rprof_path) ds #> Profile data: 28 samples names(ds) #> [1] "meta" "sample_types" "samples" "locations" "functions" #> [6] ".rprof" write_pprof(ds, file.path(tempdir(), "1.pb.gz"))
Please note that the profile project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.