-
profvis now requires R 4.0.0. The bundled version of jQuery has been upgraded to 3.7.1 (@hedsnz, #139) and the bundled
highlight.js
has been updated to the 11.10.0 (#140). It no longer longer requires purrr or stringr, and no longer suggests ggplot2, devtools, knitr, or rmarkdown. -
provis()
uses a new technique for trimming uninteresting frames from the stack (#130). This requires a new evaluation model where the code you supply toprofvis()
is turned into the body of a zero-argument anonymous function that is then called by profvis. This subtly changes the semantics of evaluation, but the primary effect is that if you create variables inside of the profiled code they will no longer be available outside of it. -
profvis()
now uses elapsed time where possible (#72). -
profvis()
now uses doubles instead of integers (#114). -
The CSS for profvis code is scoped so that it does not affect other blocks of code, such as those from RMarkdown or Quarto (@wch, #140).
-
print()
gains anaggregate
argument. Useprint(profvis(f()), aggregate = TRUE)
to aggregate frames by name in the flamegraph. This makes it easier to see the big picture (#115). Set theprofvis.aggregate
global option toTRUE
to change the default. -
For C function declarations that take no parameters, added
void
parameter.
-
Resolved #102:" Added
simplify
argument. WhenTRUE
(the default), the profiles are simplified using the newfilter.callframes
argument of R 4.0. This argument has no effect on older R versions. (#118) -
Fixed #111: auto-scrolling to lines of code did not work in some browsers. (#113)
-
Added a profvis Shiny module, for starting/stopping the profiler during the execution of a Shiny application. This can be helpful if you don't want to profile the entire execution of an app, only a certain operation. To install the profvis module into your app, add
profvis_ui("profvis")
to your UI, andcallModule(profvis_server, "profvis")
to your server function. -
Exported
parse_rprof
function.
- Fixed problem with development build of R where source refs are turned on by default (reported by Tomas Kalibera).
-
Fixed #77: The contents of
<expr>
are now always listed first. -
Addressed #85: The
pause()
function is now implemented in C, which reduces the amount of data generated. -
Fixed #86: In the data pane, toggling between horizontal/vertical view caused the flame graph to render on top of the tree view.
-
Fixed #84: In the data pane, leaf nodes (representing top-most calls on the stack) were not displayed.
-
Addressed #82: In the data pane, if a node has exactly one child, that child will automatically be expanded. This makes it more efficient to explore the data. (#83)
-
Fixed #50: In the data pane, function calls were shown in reverse order.
-
Fixed #68: profvis threw an error when a package was installed using
devtools::install_github(args = "--with-keep.source")
. -
Fix bug where, when loading a profile that didn't contain memory data, profvis would throw an error. #66
-
Fixed #73: profvis would throw an error if used on code sourced from a remote URL.