You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

utils:::readCitationFile拖慢Shiny App的排查与优化求助

关于Shiny App面板渲染卡顿及utils:::readCitationFile耗时异常的优化经验

我开发了一款Shiny App,其中一个面板渲染耗时极长,正在寻求优化方案。我使用profvis对App进行性能分析,但不知后续如何处理。从分析结果来看,耗时最长的环节是utils:::readCitationFile,仅该函数就占了面板创建15秒时长的一半。但我的代码中并未显式调用该函数,推测可能是某个包的默认调用所致。由于涉及机密数据,无法提供可复现示例,请问是否有人遇到过类似问题并知道解决方法?

已验证的优化步骤(问题已解决)

在清理代码并尝试制作可复现示例的过程中,通过以下改动解决了卡顿问题,分享出来供参考:

  • 添加req()函数:App中部分关键响应式对象在求值前未调用req(),添加后App速度显著提升,utils:::readCitationFile的“疑似耗时”也随之减少。建议系统性使用req()来控制响应式对象的求值时机,避免不必要的计算触发。
  • 调整RcppRoll的使用范围:原本在包含3年12个月数据(约250行)的数据框上使用RcppRoll::cumsum()和RcppRoll::roll_sum(),但实际业务场景仅需2年数据。缩减数据范围后,性能提升效果最明显,不过因同时做了其他修改,暂无法确认是否是RcppRoll本身存在性能瓶颈。

目前仍未明确utils:::readCitationFile耗时异常的具体根因,后续若找到确切原因并制作出可复现示例会补充说明。

内容的提问来源于stack exchange,提问作者EnisKarra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:35:00