所以我已经在堆栈溢出上阅读了一些这些帖子,但大多数都是在Linux(使用valgrind / gprof)或使用Visual Studio的Windows上分析MEX函数。
我有一大块软件,用C ++编写,编译成MEX二进制文件,还有在MATLAB脚本中用C ++代码调用的MEX函数。
我想描述一下这个应用程序,并弄清楚什么会降低应用程序的速度或者我需要加快哪些功能,但是因为它太大了我不知道从哪里开始。这就是为什么我想让一个分析器为我找出一些问题。
我能找到的唯一可以在OSX上运行的探测器就是乐器。问题是我无法弄清楚如何正确使用它。如果我分析二进制文件,它不会给我任何相关信息(大多只是给我初始化应用程序的十六进制值)。如果我调用实际的脚本(.m)文件,它会给我相同类型的信息,例如:
dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**, unsigned long*)
是在仪器内的Main thread
(这是唯一的线程)下调用的函数。有什么我应该做的事情来分析应用程序,或者是否有我可以使用的分析器,这将帮助我了解正在发生的事情?