与此相关的额外信息:https ://shiny.rstudio.com/articles/scaling-and-tuning.html
我正在尝试为我的 Shiny 应用程序确定最佳的工作线程和实例设置,以使用户体验尽可能流畅。大多数情况下,应用程序上的流量很少,但有时流量会异常高,例如当它向大量受众展示时(可能超过 100 个用户?)。
首先,基于个人经验以及这个SO问题。,我将“最大连接数”(每个 R 工作进程允许的并发连接数)设置为 1。这将避免共享同一 R 工作进程的连接之间出现一些奇怪的“交互”。
我有shinyapps.io的专业订阅,这意味着每个应用程序最多有10个实例。在应用程序的设置中,我可以调整多个值,以确定何时启动新实例、何时添加或共享新工作人员等。
考虑两种情况:
我对其进行了设置,以便有尽可能多的实例,并且其他工作人员会在出现时填写。如果每个实例最多有 10 个工作线程,则前 10 个连接将各自启动自己的实例,第 11 个连接最终将使用新工作线程加入其中一个实例。
我将其设置为尽可能少的实例,添加工作人员直到需要新实例为止。如果每个实例最多 10 个工作线程,则第一个连接将启动该实例,接下来的 9 个连接将启动该实例中的工作线程,第 11 个连接将启动一个新实例和工作线程。
使用这两种方法的优点和缺点是什么?
能提高性能吗?它们是一样的吗?
实例上有更多工作人员是否会降低计算速度?
谢谢!
我有一些 Rmarkdown 文档我正在尝试knit/render作为PDF文件。我想要render正常工作,因为我将在具有多个 Rmd 文件以及许多其他进程(例如数据抓取和处理)的脚本中运行它。
使用该knit按钮会产生所需的结果。如果我使用rmarkdown::render表格布局就会变得古怪(参见示例)。这是重现我的问题的最小示例。
RMD
---
title: "RmdTest"
author: "TTS"
date: '`r format(Sys.time(), "%d %B, %Y")`'
output: pdf_document
always_allow_html: true
---
```{r Rmd-Setup, include=FALSE}
options(knitr.kable.NA = '')
library(kableExtra)
# Dummy Data
df <- structure(list(Location = c("Farm", "Farm", "Farm", "Farm"),
Animal = c("dog", "cat", "cat", "cat"), Age = c("Adult",
"Juvenile", "Adult", "Total"), Abundance = c(27269L, 62308L,
34904L, 97212L)), row.names = c(NA, -4L), class = "data.frame") …Run Code Online (Sandbox Code Playgroud)