需要类似于kcachegrind的适用于Mac的性能分析工具。

109

需要关于类似于 kcachegrind、wingrind、valgrind 的工具在 Mac 平台上的建议。

我认为这些工具在 Mac 上不可用,我已经检查过了。


我正在尝试对PHP/JavaScript代码进行分析,因此更关注这些分析工具。无论如何,感谢您的建议。 - indianwebdevil
1
我认为大多数浏览器都内置了自己的JavaScript解释器,但Safari使用的是JavaScriptCore,它在整个操作系统中都有暴露,并且几乎肯定会在其他地方(如Cheetah3D)运行脚本化的JavaScript内容。如果您在首选项中启用“开发”菜单,则其中有一个JavaScript分析器。 - Tommy
参见:https://dev59.com/9W035IYBdhLWcg3wbPbc#15952369 - kenorb
8个回答

149

最终我在OSX上使用了qcachegrind。可以通过brew安装。

brew install qcachegrind

或者,要启用 graphviz 支持:

brew install qcachegrind --with-graphviz

这个程序很棒的一点是我成功地在我的MacBook Pro上加载了一个6.1GB的cachegrind文件!相当不错!


10
在执行此操作之前,运行brew update可以防止出现奇怪的错误 :) - grosser
3
如果你想要一些漂亮的函数调用图,可以通过运行brew install graphviz来安装。 - Ngoc Pham
2
我不得不使用符号链接来使调用图工作。请执行以下命令:sudo ln -s /usr/local/bin/dot /usr/bin/dot - John Kramlich
6
对我来说,--with-graphviz 参数无法工作(即使进行了 brew updatebrew doctor),但是将 brew install qcachegrindbrew install graphviz 分别作为命令执行就可以了。 - BoltzmannBrain
2
Homebrew 公式中的 qcachegrind 依赖于 graphviz,因此以下命令足以在 2022 年安装:brew install qcachegrind - Brian
显示剩余3条评论

67

尝试使用qcachegrind + Graphviz这个强力组合。

它可以通过brew快速安装,非常方便。

请查看这些说明,基本上是通过以下方式进行安装:

brew install qcachegrind

这将下载其他依赖项,例如qtgraphviz


13
现在可以使用“brew install qcachegrind”命令进行安装,该公式基于该博客。尽管目前它不会安装/Applications/QCachegrind.app,而只会安装qcachegrind二进制文件。 - Derek Downey
另一篇有用的文章:http://blog.jcmultimedia.com.au/2014/03/profiling-php-on-osx-with-xdebug-kcachegrind/ - Jazzo

23
您可以使用MacPorts来安装KCacheGrind。
还有一些备选方案,如下:

另请参阅:有没有适用于 Mac Os X 的 KCacheGrind 替代品?


1
针对使用 phpStorm 的用户:它有一个很好的内置 XDebug 档案查看器(比 qcachegrind 更好的体验)。 - kalabro

16

Valgrind和Kcachegrind都可以在Mac OS X上使用。

你可以使用MacPorts进行安装:

sudo port install valgrind kcachegrind

我尝试安装MacPorts并执行sudo port install valgrind kcachegrind,但两个应用程序都出现了以下错误-------------------警告:未找到索引!您是否同步了源索引? 错误:找不到端口kcachegrind----------------有什么线索吗? - indianwebdevil
1
kcachegrind端口正式在2年前被放弃了 :( https://trac.macports.org/log/trunk/dports/devel/kcachegrind/Portfile - Potatoswatter
@Potatoswatter 在MacPorts中有许多端口没有特定的维护者。这并不意味着该端口不能再安装了。 - raimue
2
@Raim 这意味着该端口现在安装的软件已经过时了2年。 - Potatoswatter

8

Webgrind 运行在 PHP 上,可以读取 XDebug 的 cachegrind 输出。目前它并没有提供 KCacheGrind 的所有功能,但安装非常简单,并且似乎有更新的活动。


7

MacCallGrind是一款半商业化的Mac替代品。我已经尝试过免费版,但只能处理3MB大小的分析文件。它在功能上与WinCacheGrind差不多。


现在纯商业化。 - Victor Sergienko

2

苹果提供了Instruments来监控运行时的分配和查找内存泄漏,Shark用于显式的性能分析,Guard Malloc(直接内置于Xcode中)用于内存分配调试。所有这些都是开发者工具的一部分。


1
在最近的OS X版本中,Shark现在已经集成到Instruments中。 - rcoup

1

Valgrind 可以在 Mac 上使用。如果你正在构建 Cocoa 应用程序,可以使用 XCode 自带的工具,例如 leaks,它们非常好用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接