c - 剖析 C 代码 R

标签 c r

我是 R 的新手,但不是 C 的新手。我想看看是否可以为 friend 加速一个包。通常使用 C 我会编译一个设置了 -pg 标志的应用程序,然后将 gmon.out 文件传递​​给 gprof。

我尝试将这个库变成一个独立的应用程序,但是 R 内部有太多的依赖关系(实用程序甚至一些奇怪的 fortran 库)所以放弃了这条路。

我还编辑了 ~/.R/Makevars 以包含 -pg。但这似乎并没有在我能找到的任何地方生成 gmon.out 文件。

This thread似乎是最多信息的位置,但我发现它不是很有帮助(可能是因为它已有 10 年历史了)。我尝试启动并运行 oprofile 但失败了。

有人能给我指出正确的方向吗?

TL;DR:如何分析 R 包中的 C 代码?

最佳答案

感谢u/bc2zb在 reddit 上为我指出 this presentation .

所以答案如下:

  • 将一些测试代码编写为 r 脚本。
  • 安装 libgoogle-perftools-dev 和 google-perftools
  • 这样运行代码:LD_PRELOAD="/usr/lib/libprofiler.so.0"CPUPROFILE=/tmp/rprof.log r testCode.R(可能需要 su - 或者只是将输出改为 ~/somefolder )
  • 然后运行:google-pprof --cum --text/usr/bin/r/tmp/rprof.log |少

关于c - 剖析 C 代码 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40343773/

相关文章:

在 `knitr` Rnw block 图标题中引用先前定义的对象

r - 当值从一年增加到下一年时,将指示变量添加到长数据框

R barplot : wrapping long text labels?

r - 如何在 r 的列中插入符号 %

c - 从字符串中读取 float 作为 2 个整数

python - python中的C双重限制

c - MPI - 在障碍后尝试打印广播变量,显示其他一些变量

c - 在c程序中,为什么osx中的字符串(从strcpy复制)的释放内存不可用?

c - 返回二维数组中的值

R 谷歌地图,添加更长的路径