初始 DT 处理有一个缓慢的网络请求
Initial DT Processing has a slow network request
我的 Shiny App 中 DT 的 "Processing..." 步骤需要很长时间,因为该应用程序不是 运行 在我的 PC 本地,而是在闪亮的服务器上。
我使用 profvis(远程在服务器上)分析了该应用程序,但“DT::renderDataTable”步骤只需要 ~400 毫秒(大约 2000 行)。
Chrome 但是显示 "Network request step" 需要 ~15 秒:
来自 Chrome 性能分析的信息:
- 网络请求URL
/session/d229229…/dataobj/dataTableOut?w=&nonce=ce39...
- 持续时间 15.89 秒
- 请求方式POST
- 优先级高
- Mime 类型 application/json
- 编码数据 1.7 KB
- 解码后的正文 5.2 KB
- 发起人jquery.min.js:2
造成这种延迟的原因是什么?
感谢您的帮助!
终于找到问题了:
shiny 服务器的行为与我的本地版本不同的根本原因是可用 cpu 内核的数量。
一些广泛的后台请求由我闪亮的应用程序中的 future/promises 包处理。由于远程服务器上的内核瓶颈,这些请求阻塞了 DT 处理,因此加载 DT 的网络请求花费了很长时间。
我的 Shiny App 中 DT 的 "Processing..." 步骤需要很长时间,因为该应用程序不是 运行 在我的 PC 本地,而是在闪亮的服务器上。 我使用 profvis(远程在服务器上)分析了该应用程序,但“DT::renderDataTable”步骤只需要 ~400 毫秒(大约 2000 行)。
Chrome 但是显示 "Network request step" 需要 ~15 秒:
来自 Chrome 性能分析的信息:
- 网络请求URL /session/d229229…/dataobj/dataTableOut?w=&nonce=ce39...
- 持续时间 15.89 秒
- 请求方式POST
- 优先级高
- Mime 类型 application/json
- 编码数据 1.7 KB
- 解码后的正文 5.2 KB
- 发起人jquery.min.js:2
造成这种延迟的原因是什么?
感谢您的帮助!
终于找到问题了:
shiny 服务器的行为与我的本地版本不同的根本原因是可用 cpu 内核的数量。 一些广泛的后台请求由我闪亮的应用程序中的 future/promises 包处理。由于远程服务器上的内核瓶颈,这些请求阻塞了 DT 处理,因此加载 DT 的网络请求花费了很长时间。