闪亮的应用程序无响应

时间:2018-07-28 06:35:29

标签: r shiny

我编写了一个运行良好的Shiny App,我想稍微重写一下代码,使其更加美观。

我的探查:该应用程序正在加载一段时间,并且在加载时不再响应。奇怪的是,它在旧版本的App中运作良好。

这是我现在拥有的(删除了几乎所有内容之后):

ui.R:

library(shiny)

function(request){shinyUI(fluidPage(

  sidebarLayout(

    sidebarPanel(

    ),

    mainPanel(
      DT::dataTableOutput("table")
    )
  )
))}

server.R:

library(shiny)
library(DT)
library(crosstalk)
library(tidyverse)

data <- readRDS("report_summary2.rds")

shinyServer(function(input, output, session) {

  computeTable <- function(){data %>% select("Year", "Month", "Date", "Transaction")}

  output$table <- DT::renderDataTable({
    DT::datatable(
      data = computeTable(),
      filter = "top",
      rownames = FALSE,
      options = list(
        pageLength = 100
      )
    )
  })
})

不幸的是,我不能共享report_summary.rds,因为它包含敏感信息,它总共有500.000行和9列,因此处理该问题不应该成为问题。

这在旧版本的App中像超级按钮一样有效,但是现在它可以永久加载,如果我尝试对dataTable使用过滤器(位于顶部),则该应用不再响应。

我一直在搜索和查找,但找不到任何东西。可能有人看到了什么吗?

1 个答案:

答案 0 :(得分:0)

您就紧接着> 40万行DT作为一个进程(以及Basic Shiny)变得很慢。 以下是一些选项:

  • RDBMS noSQL 中存储和访问数据。
  • 使用Shiny Pro,它可以将负载分散到多个服务器\应用程序中。
  • 还要检查应用程序的体系结构(太多的反应会降低它的速度)。

当然,运行Profiler可以找出真正的瓶颈所在。所有其他选项是    以某种方式进行修饰:使用global.R,拆分数据表    快速\较小和较大\较慢的零件等。