r - Shiny 应用程序的代码分析?

标签 r shiny memory-profiling

对于 R Shiny Web 应用程序,有哪些好方法可以运行代码分析,以显示 Shiny 代码中占用最多处理时间的部分?

我有一个又大又肥又复杂的 Shiny 应用程序,我想弄清楚在这个迷宫般的代码中,我的 Shiny 应用程序最慢的地方。我已经尝试过 Rprof 和 profr 但并没有从他们那里得到太多的见解。

最佳答案

我认为这个问题需要一点更新,因此我正在添加另一个答案......

您可以使用包profvis也可以分析 Shiny 的应用程序。它将直接为您的 R 代码提供火焰图。 IE。无需使用 Chrome 的火焰图来猜测瓶颈在哪里。您将确切地知道在哪里更改您的代码。

操作方法如下:

  • 通过 Profvis
  • 运行 Shiny 的应用程序
  • 与 Shiny 的应用程序互动
  • 关闭浏览器
  • 通过停止按钮停止控制台
  • 加载配置文件
  • 如果第 5 步失败,请尝试以下操作:如果需要,转换为 html(内存问题)

  • 下面添加了某些步骤的详细信息:

    第 1 步:运行 profvis
    library(profvis)
    profvis({ runApp('directory_of_shiny_app') }  
        , prof_output = '/directory_to_save_profile')
    

    第 5 步:加载您的个人资料
    profvis(prof_input = '/path_to_save_output/random_name.Rprof') 
    

    注: Profvis 为您的文件随机命名。所以你需要相应地改变输入路径

    第六步:转成html

    如果您有一个巨大的应用程序并且火焰图变得更长一点,则可能需要此步骤。您可能会收到错误“Pandoc:... memory”
    p <- profvis(prof_input = '/path_to_save_output/file108f93bff877b.Rprof')
    htmlwidgets::saveWidget(p, "/path_to_save_output/profile.html")
    

    然后在浏览器中打开 html 文件。

    关于r - Shiny 应用程序的代码分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21484115/

    相关文章:

    python - 内存分析器在所有步骤中提供恒定的内存

    c++ - 在高性能金融应用程序中缓存

    python - 读取 Python 的 memory_profiler 的输出

    r - 在 R 中使用表情符号

    r - 在 R 中的绘图网格中添加边框

    css - 在 Shiny 中控制 sliderInput 的外观

    r - 从下拉列表中选择一个变量并将其作为 R Shiny 中的reactivePlot 中的参数传递

    r - 关于 nls fit in R 的问题 - 为什么这如此奇怪?

    r - 如何将gpclibPermit()设置为TRUE

    r - 将iframe嵌入 Shiny 的应用程序中