闪亮的应用程序在Shiny服务器上运行速度明显慢于本地服务器

时间:2018-05-12 15:02:57

标签: r performance shiny shiny-server r-leaflet

这是来自UI的任何更改输入的my Shiny app绘制台湾超过350个城镇的多边形的源代码。城镇的价值每次都会根据投入而变化,因此几乎没有机会进行leafletProxy。但我现在遇到性能问题,特别是在Shiny Server上。

您可以尝试在本地运行该应用。在UI中更改选项后,地图将在10秒内显示。但是,部署的应用on Google Compute Engineon shinyapps.io需要更长时间(大约30秒)来描绘地图,不仅在初始化应用时,而且每次更改输入时。此外,Shiny Server在计算过程中经常断开连接,如下所示:

App disconnected

当断开连接时,/var/log/shiny-server.log告诉我:

  

[INFO] shiny-server - 获取worker时出错:错误:应用程序   在初始化期间退出。

,这在当地从未发生过。

这对我没有任何意义。我的笔记本电脑如何击败服务器?我的笔记本电脑是MacBook Air(2015年初),只有1.6 GHz Intel Core i5和8 GB 1600 MHz DDR3,而Google Compute Engine上的VM即使有4个vCPU和15 GB RAM也表现不佳。

我怎样才能找出Shiny Server上性能较差或重构代码的原因?

可以相关:Leaflet R performance issues with large map

1 个答案:

答案 0 :(得分:0)

首先 - 预处理在闪亮的应用程序中没有位置。为什么每次有人使用应用程序时都会重复执行一次,然后才能加载该已保存的产品。

我将看看以下步骤:

  1. 删除外部可以执行的任何操作(例如Ln 12 - 37)
  2. 简化多边形以使文件更小(更快加载,执行一次并加载产品)
  3. 重复完成的任何生成(标签等),执行一次并保存在列表中(例如metadata.rds)并读入一次并引用。
  4. 有时您的应用程序可能会在本地运行得更快,因为您实际上并未重新启动 开发时的会议 - Shiny基本上是为每个用户启动一个会话(有点)。