【发布时间】:2017-09-25 20:03:58
【问题描述】:
我用 Rcpp 制作了一个 R 包,其中整个模拟在 C++ 中运行,结果在 R 中分析。现在我需要分析我的函数以便优化它们,但是 R 分析器无法区分 C++ 函数内部发生的情况,并且当函数只能从 R 内部运行时,我不知道如何运行 C++ 分析器。
到目前为止,我发现了一些使用 gperftools 的建议(questions 和 tutorials),但指南不完整(也许他们假设我缺乏一定的知识水平?),缺少链接,我继续运行入墙。因此这个问题。这是我所在的位置:
- 安装 gperftools(我是用 pacman 从 extra/gperftools 安装的)
- 在 C++ 头文件中包含 gperftools/profiler.h
- 在 C++ 代码中围绕我想要分析的内容添加 ProfilerStart("myprof.log") 和 ProfilerStop()
- 使用 -lprofiler 编译
- 运行“$ CPUPROFILE="myprof.log" R -f myscript.R"
当前的墙是 gcc 告诉我“Undefined Symbol: ProfilerStart”,所以我认为链接有问题?
【问题讨论】:
-
嗯,它在过去对我有用,如我网站上的一些较旧的幻灯片所示...
标签: c++ r profiling rcpp gperftools