我用 Rcpp 制作了一个 R 包,其中整个模拟在 C++ 中运行并在 R 中分析结果。现在我需要分析我的函数以便我可以优化它们,但是 R 分析器无法区分 C++ 函数内部发生的情况,我当函数只能从 R 内部运行时,不知道如何运行 C++ 分析器。
到目前为止,我已经找到了一些使用 gperftools 的建议(问题和教程),但指南不完整(也许他们假设我缺乏一定的知识水平?),缺少链接,而且我一直在碰壁。因此这个问题。这是我所在的位置:
- 安装 gperftools(我用 pacman 从 extra/gperftools 安装)
- 在 C++ 头文件中包含 gperftools/profiler.h
- 在 C++ 代码中围绕我想要分析的内容添加 ProfilerStart("myprof.log") 和 ProfilerStop()
- 使用 -lprofiler 编译
- 运行 "$ CPUPROFILE="myprof.log" R -f myscript.R"
当前的墙是 gcc 告诉我“未定义符号:ProfilerStart”,所以我认为链接有问题?