列出R闪亮服务器上app中的对象内存使用情况

rob*_*che 2 ls r shiny

我一直试图在R Shiny Server上运行时显示我的R Shiny应用程序中使用的每个对象的内存使用情况,以便识别内存泄漏.在R中,我可以打电话ls()objects()获取所有信息.一旦我尝试在Shiny应用程序中显示此信息,无论是通过renderText()还是renderDataTable()关闭数据帧,它都是空白的.我猜测环境存在功能问题ls()并且objects()正在查看.有人之前遇到过这个问题吗?

Yih*_*Xie 5

这是一个简短的示例(关键是指定要调查的环境):

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)