加快UI加载速度

时间:2020-08-29 08:11:31

标签: r shiny

在global.R文件中,我正在读取一些10-12个excel文件,一些用户定义的函数,模块,并在此之上进行一些数据操作(不是那么重的任务)。我想加快加载闪亮的应用程序的速度。我在考虑是否将其保存在.RData中,然后执行load("mydata.RData", envir = .GlobalEnv)而不是读取excel文件并在global.R中获取函数。会增加闪亮的应用程序的加载时间吗?即使出现UI但服务器仍然加载,我也很好。我对立即向用户显示UI感兴趣,用户可以等待一些计算。我正在使用docker进行生产,因此主要是对UI加载时间感兴趣,因为容器需要一些时间来旋转用户必须等待的时间,然后加载应用程序也需要时间。

1 个答案:

答案 0 :(得分:2)

这是一个很大的话题,您可以在几个方面改进Shiny-App,以使其运行更快。

  1. 第一个想法是将每个标签放入module中。这意味着您通常在ui.R中运行的代码会缩短很多。这样一来,应用程序将变得更快,因为用户只需单击该选项卡,即可加载该模块中所需的绘图,文件等。
  2. 使用data.table使您的应用更高效。该软件包是专为更快的使用而设计的。您甚至可以使用dplyr combine。您可以尝试使用data.table::fread()命令加载文件。
  3. 绘图时,您甚至可以使用JavaScript的D3。有一个名为r2d3的{​​{3}},使您可以使用JS的D3在Shiny-App中进行绘图。
  4. 将excel文件转换为机器可读的格式,例如.rds。这也提高了加载速度。

我建议您一次使用profvis package并运行它的Shiny-App。在您加载了应用程序并再次将其关闭之后,它可以查看花费了这么多时间的确切时间。也许毕竟不是负载,而是另一个问题?然后您可以从那里去。