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

时间:2014-09-21 08:19:08

标签: r shiny ls

我一直在尝试在R Shiny Server上运行时显示我的R Shiny应用程序中使用的每个对象的内存使用情况,以便识别内存泄漏。在R中,我可以致电ls()objects()并获取所有相关信息。只要我尝试在数据框中通过renderText()renderDataTable()在Shiny应用中显示此信息,它就会全部为空白。我猜测函数ls()objects()正在查找的环境存在问题。之前有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分: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))
        }))
      )
    })
  }
))