A Graphic Device that Does Nothing

Provides a non-drawing graphic device for benchmarking purpose. In order to properly benchmark graphic drawing code it is necessary to factor out the device implementation itself so that results are not related to the specific graphics device used during benchmarking. The 'devoid' package implements a graphic device that accepts all the required calls from R's graphic engine but performs no action. Apart from benchmarking it is unlikely that this device has any practical use.


devoid

R-CMD-check

This package provides a graphic device that does no operations. This makes it suitable for benchmarking functions that produce graphics as it removes the device implementation from the equation. In contrast to the nulldev() function from R.devices package this device is a true device implementation that simply does nothing rather than calling pdf() with a temporary file connection.

Installation

You can install devoid with the remotes package:

# install.packages('remotes')
remotes::install_github('r-lib/devoid')

Example

devoid provides a single function void_dev() which is used much like any other device:

library(devoid)

void_dev()
plot(1:10, 1:10)
dev.off()
#> quartz_off_screen 
#>                 2

Using it we can now see how much drawing time e.g. the png device is responsible for:

point_coord <- seq_len(1e4)
void_plot <- function() {
  void_dev()
  plot(point_coord, point_coord)
  dev.off()
  NULL
}
png_plot <- function() {
  png(tempfile())
  plot(point_coord, point_coord)
  dev.off()
  NULL
}

res <- bench::mark(devoid = void_plot(), png = png_plot(), min_iterations = 50)
plot(res)
#> Loading required namespace: tidyr

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("devoid")

0.1.2 by Thomas Lin Pedersen, 3 years ago


https://github.com/r-lib/devoid


Report a bug at https://github.com/r-lib/devoid/issues


Browse source code at https://github.com/cran/devoid


Authors: Thomas Lin Pedersen [aut, cre] , Posit , PBC [cph]


Documentation:   PDF Manual  


MIT + file LICENSE license


Suggests covr


See at CRAN