在 Mac OS X 上分析数学密集型 C++ 应用程序以提高速度的最简单/最佳方法是啥?

Posted

技术标签:

【中文标题】在 Mac OS X 上分析数学密集型 C++ 应用程序以提高速度的最简单/最佳方法是啥?【英文标题】:What's the easiest/best way to profile a math intensive C++ application for speed on Mac OS X?在 Mac OS X 上分析数学密集型 C++ 应用程序以提高速度的最简单/最佳方法是什么? 【发布时间】:2010-11-17 23:26:21 【问题描述】:

我正在 Mac OS X 上开发一个控制台数学密集型应用程序。它是用 C++ 实现的,我没有使用特殊的 IDE,只是一个纯文本编辑器和用于编译的 GCC。

目前,我的数据执行速度很慢。分析它以了解要优化哪些部分的最简单/最佳方法是什么?

我在非常基础的层面上使用 valgrind 来检查内存泄漏。但是,我从未将它(callgrind)用于计算速度分析。我该怎么做?我发现 callgrind 文档有点混乱/对新手不太友好。是否有适用于 Mac 的 kcachegrind 等价物?据我所知,Maccachegrind 仅适用于 xdebug 输出,不适用于 callgrind 3.6.0 输出。

使用 valgrind 或 gprof 进行性能分析更好吗?我都不熟悉。

谢谢。

【问题讨论】:

你可以使用 GDB 吗?然后这个工作:***.com/questions/375913/… 【参考方案1】:
/Developer/Applications/Performance Tools/Shark.app

打开它,运行您的应用程序,点击开始,让您的应用运行一段时间,点击停止。

Apple 开发者网站上有一个more detailed introduction。

【讨论】:

我会接受这个答案,因为我喜欢使用 Apple Instruments 进行分析。【参考方案2】:

您应该能够从 Macports(包 kdesdk4)安装 kcachegrind,也许还可以安装 fink(我自己从未使用过)并像在 Linux 上一样使用它。我过去这样做过,效果很好。

【讨论】:

以上是关于在 Mac OS X 上分析数学密集型 C++ 应用程序以提高速度的最简单/最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OS X 上使用 C++ 播放声音?

在 Mac OS X 上安装 C++ Armadillo 库

在 mac os x sierra 上使用 opencv c++ 编译 hello world

C++ 在 Mac OS X 上编译代码并在 Linux x86 上运行

为啥我可以在 Mac OS X 上使用 Cython 编译为 C 但不能编译为 C++

Mac OS X 上的 GCC 7 找不到 C++ 标准库