首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MacOSX工具评测Python代码

MacOSX工具评测Python代码
EN

Stack Overflow用户
提问于 2014-01-10 16:25:03
回答 3查看 3.6K关注 0票数 28

MacOSX Xcode Instruments非常适合分析本机代码。然而,我的callstack中也有大量的Python调用。我能以某种方式让Instruments支持Python吗?

我能想到的一种解决方案是,当它看到一些Python帧时,它会在其本地变量/参数中查找,以分隔不同的PyEval_EvalFrameEx调用,并向我显示一些调用信息。

我问的不仅仅是一个Python分析器。我想分析一下我的本机代码。但是在本机代码分析中,我想添加一些进一步的智能来分析和转换Python堆栈帧。

EN

回答 3

Stack Overflow用户

发布于 2015-07-29 14:13:30

根据该stackoverflow answer,仪器是dtrace的图形用户界面前端。Big Nerd Ranch上有Apple Documentation证实了这一点,还有一些关于dtrace的OS-X特定文章。

可以在编译CPython源代码之前将其应用于dtrace,以便对其进行检测。看起来在homebrew中已经或者曾经支持使用dtrace自动构建一个新的python,但是现在通过谷歌搜索,我找不到当前python版本(2.7.10,3.4/3.5)中支持dtrace提供者的自制食谱的参考资料。我还没有尝试过,所以可能当前的方法只是在构建时使用--with-dtrace开关。

有一个来自Python2013的演讲:dtrace, Python and You,它谈到了如何安装一个包含dtrace支持的PyTexas (特别是在Mac上演示),并在命令行上使用dtrace。

我认为,一旦安装了支持dtrace的python,在运行它时,您应该能够在Instruments中看到并使用它。如果要将python解释器添加到OS X应用程序中(作为.framework或其他形式的链接),如果该python在编译之前应用了dtrace补丁,我也认为可以在dtrace中使用它。这两种方法我都没试过,但根据我对dtrace的了解,我相信它应该可以工作。如果我确认这是真的,我会回帖的。

票数 4
EN

Stack Overflow用户

发布于 2014-12-10 05:03:35

没有MacOSX工具来分析Python代码。就我个人而言,我使用cProfile。它是一个叫做cProfile的内部分析器。您可以通过以下两种方式之一使用它:

代码语言:javascript
复制
import cProfile
cProfile.run('print "Hello World!"')

代码语言:javascript
复制
python -m cProfile your_own_script.py

结果将类似于:

代码语言:javascript
复制
>>> cProfile.run('print "Hello World!"')
Hello World!
         2 function calls in 0.000 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 <string>:1(<module>)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

编辑:如果您正在寻找本机级别的调用。然后,您应该迁移到strace(针对Linux)和dtruss (针对Mac )或其他类似工具。基本上,您可以将Python脚本包装在strace调用中,您将能够查看所有的“本机”C/C++调用。对于其他linux系统,请使用:

代码语言:javascript
复制
strace -fetrace=open python your_script.py

或者,如果您使用的是Mac OSX:

代码语言:javascript
复制
dtruss -f -t open python your_script.py

我希望这能帮到你!

票数 2
EN

Stack Overflow用户

发布于 2015-07-16 01:35:44

有一个很棒的新图形用户界面分析器,叫做PyVmMonitor。我还没有成功地将它附加到我正在运行的应用程序中,但我已经使用它从命令行生成和分析配置文件,如下所示:

代码语言:javascript
复制
python /Applications/PyVmMonitor.app/Contents/MacOS/public_api/pyvmmonitor --profile=yappi my_app.py
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21039273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档