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 to profvis()
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 an aggregate
argument.
Use print(profvis(f()), aggregate = TRUE)
to aggregate
frames by name in the flamegraph. This makes it easier to see the big
picture (#115). Set the profvis.aggregate
global option to
TRUE
to change the default.
For C function declarations that take no parameters, added
void
parameter.
Resolved #102:” Added
simplify
argument. When TRUE
(the default),
the profiles are simplified using the new filter.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, and
callModule(profvis_server, "profvis")
to your server
function.
Exported parse_rprof
function.
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.