我一直试图在R Shiny Server上运行时显示我的R Shiny应用程序中使用的每个对象的内存使用情况,以便识别内存泄漏.在R中,我可以打电话ls()或objects()获取所有信息.一旦我尝试在Shiny应用程序中显示此信息,无论是通过renderText()还是renderDataTable()关闭数据帧,它都是空白的.我猜测环境存在功能问题ls()并且objects()正在查看.有人之前遇到过这个问题吗?
这是一个简短的示例(关键是指定要调查的环境):
library(shiny)
runApp(list(
ui = fluidPage(
tableOutput('foo')
),
server = function(input, output) {
x1 <- 1:100
x2 <- rbind(mtcars, mtcars)
env <- environment() # can use globalenv(), parent.frame(), etc
output$foo <- renderTable({
data.frame(
object = ls(env),
size = unlist(lapply(ls(env), function(x) {
object.size(get(x, envir = env, inherits = FALSE))
}))
)
})
}
))
Run Code Online (Sandbox Code Playgroud)