time_pipe: Measure execution time in a pipeline

View source: R/time_pipe.R

time_pipeR Documentation

Measure execution time in a pipeline

Description

Records the runtime of a pipeline (⁠|>⁠) from its start to the point where time_pipe() is called. Prints results to the console and/or logs them in .pipetime_env. Defaults can be set via ⁠options(pipetime.*)⁠.

Usage

time_pipe(
  .data,
  label = NULL,
  log = getOption("pipetime.log", NULL),
  console = getOption("pipetime.console", TRUE),
  unit = getOption("pipetime.unit", "secs")
)

Arguments

.data

Input object passed through the pipeline.

label

Character string. Operation name. Defaults to the expression if NULL.

log

Character string or NULL. Name of a log data frame in .pipetime_env. Default: NULL.

console

Logical. Print timing to console? Default: TRUE.

unit

Character string. Time unit for base::difftime(). One of "secs", "mins", "hours", "days", "weeks". Default: "secs".

Details

time_pipe() measures elapsed time from pipeline start to the call. If log is set, results are appended to a data frame in .pipetime_env with columns:

  • timestamp: Pipeline start time (POSIXct)

  • label: Operation label

  • duration: Elapsed time since pipeline start (numeric)

  • unit: Time unit used

Stored logs can be retrieved with get_log().

Value

.data, unchanged. Timing information is printed and/or stored separately.

Examples

library(dplyr)
data.frame(x = 1:3) |>
mutate(y = {Sys.sleep(0.5); x*2 }) |>
time_pipe("calc 1") |>
mutate(z = {Sys.sleep(0.5); x/2 }) |>
time_pipe("total pipeline")


pipetime documentation built on Nov. 5, 2025, 5:40 p.m.