Description
Read, Manipulate, and Write Profiler Data.
Description
Defines a data structure for profiler data, and methods to read and write from the 'Rprof' and 'pprof' file formats.
README.md
profile
The goal of profile is to read and write files that contain run time profiling data. Currently, profile supports:
- Files created by
Rprof()
.proto
files written bypprof -proto
, these can also be read bypprof
The data is available to the user for inspection and manipulation in a documented stable data format.
Installation
You can install profile from GitHub with:
# install.packages("remotes") remotes::install_github("r-prof/profile")
Example
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"))
Code of Conduct
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.