问题标签 [cprofile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我们可以在 python profiling 中找到内置方法调用的位置吗?
当我使用 cProfile 分析我的 python 代码时,大部分时间都有很多 {built-in method...}。它们可能是第三方 API 或我的 C/Fortran 扩展。问题是我们能否轻松找到这些方法在 python 脚本中的调用位置?谢谢!
python - 如何分析(视觉)通过 C 扩展在 python 包中实现的 CUDA 代码?
CUDA 可视化分析器 (nvvp) 需要一个可执行条目来进行分析,但我的 CUDA 代码是通过 C 扩展在 python 包中实现的。无论如何要在这个 python 包中进行 CUDA 分析?谢谢!
python - Python:解释 cProfile 日志
我有一种方法可以为每个人确定最合适的人。基本上,字典的项目上有两个嵌套循环,从一个人映射到一个列表(其中相似的列表确定兼容性),如果它大于外部循环的人的先前最大值,则计算并保存 compat .
所以我决定通过更新其他人的兼容性(内循环中的 on)来优化性能,因为兼容性是相同的,当外循环到达人 2 时我不必进行相同的计算和内在的一个人 1 [使用相容关系的对称性]。
好吧,我最终慢了 20 倍. c-profile 日志很奇怪,因为改进版本的所有操作都比未改进代码中的操作具有更好(或相似)的总时间。所以我绝对无法找到瓶颈。:(
谁能给我关于如何解释这些日志的建议?邪恶的指令去哪儿了?
正常代码日志:
“优化”一的日志:
//编辑:
以防万一我也可以提供代码。据我所知,后者绝对没有理由比前者慢 20 倍。
正常的一个:
和“优化”:
python - 与 python 代码相比,库 itertools 的性能
作为对我的问题的回答找到两个列表相同的基于 1 的位置,我得到了使用 C 库 itertools 来加快速度的提示。
为了验证我使用 cProfile 编写了以下测试:
函数 match_iter() 正在使用 itertools,而函数 match_loop() 是我在使用普通 python 之前实现的。
函数 test() 定义了两个列表,打印带有两个函数结果的列表以验证它是否正常工作。两个结果都具有预期值 5,即列表的长度相等。然后它在这两个函数上循环 10,000 次。
最后,使用 profile_test() 分析整个事情。
我学到的是 izip 没有在 python3 的 itertools 中实现,至少在我使用的 debian wheezy whitch 中没有实现。所以我用python2.7运行了测试
结果如下:
让我想知道的是,查看 cumtime 值,我的普通 python 版本对于 10,000 个循环的值为 0.162 秒,而 match_iter 版本需要 0.434 秒。
一方面,python 非常快,很棒,所以我不必担心。但这是否正确,C 库完成工作所需的时间是简单 python 代码的两倍多?还是我犯了一个致命的错误?
为了验证我也用 python2.6 运行了测试,这似乎更快,但循环和 itertools 之间的区别相同。
谁有经验并愿意提供帮助?
python - cProfile - 将数据保存在 Python 对象中/延迟写入磁盘
我有一个想用 cProfile 分析的函数,但我还保存了很多关于结果的其他分析 - 这当前保存到一个以编程方式生成名称的目录中,我希望将配置文件数据保存在同一个目录。
但是:目录名称仅在我要分析的函数完成后在concurrent.futures
回调函数中计算出来。
有没有一种简单的方法可以将配置文件数据保存在 Python 对象中,该对象可以传递给回调函数(例如,与函数的结果一起返回),以便在知道文件名后写入磁盘?
python - 无法在 Python 3 中导入 cProfile
我正在尝试将 cProfile 模块导入 Python 3.3.0,但出现以下错误:
完整代码(cProfile_try.py
)如下
python - 通过 f2py 对 Python 的 Fortran 扩展:如何分析?
我正在使用通过 f2py(版本 2)编译的 Fortran(gfortran 4.4.7)编写的 Python(2.7.2)扩展。
我可以用 来分析 Python 部分cProfile
,但结果没有提供有关 Fortran 函数的任何信息。相反,时间归因于调用 Fortran 函数的 Python 函数。
我已经为我构建的所有 Fortran 对象启用了“-pg -O”标志,以及在 f2py 调用中通过以下方式创建共享对象:f2py --opt="-pg -O"
...
任何有关如何获取 Fortran 信息的提示都非常感谢。
如果有人使用类似的设置,使用不同的分析器,我也会感兴趣。
multithreading - 如何从 Python 中的回调函数获取 cProfile 结果
我正在尝试确定我的 python 代码的哪些部分运行最慢,以便我更好地了解我需要修复的内容。我最近发现了非常有用的cProfile和gprof2dot 。我的问题是我没有看到有关我用作回调的函数的任何信息,我相信这些函数可能运行得非常缓慢。根据我从这个答案中了解到的情况,cProfile 默认情况下只能在主线程中工作,我猜回调使用单独的线程。如果您使用线程库,该答案显示了一种让事情正常工作的方法,但我无法让它适用于我的情况。
这大致是我的代码的样子:
关于如何获取 vis_callback 函数的 cProfile 信息的任何想法?通过修改脚本本身,甚至更好地使用python -m cProfile
或其他命令行方法?
我猜这是读取图像或将它们附加到缓慢的队列中。我的直觉是,将它们存储在队列中是一件可怕的事情,但我需要用 matplotlib 显示它们,如果它不在主线程中,它会拒绝工作,所以我想看看损坏到底有多严重有这个解决方法
networking - 找到flask应用的瓶颈
我写了一个烧瓶应用程序。当我将它部署在远程服务器中时,我发现它非常慢。所以,我用它做了一些分析实践。请看下面的图片:
我用来分析的代码是:
图片1
在远程服务器中进行分析。也许瓶颈是_socket.getaddrinfo
图二
在本地机器中进行分析。没有发现瓶颈。
图三
有时,即使在远程服务器中,也没有发现瓶颈。没有_socket.getaddrinfo
找到。诡异的!
我也在远程服务器 python shell 中使用cProfile
. 看看这个:
也许有一个事实,就是做一些dns resolve
工作需要很多时间,而我自己也无法改变这一点。
谁能告诉我:为什么_socket.getaddrinfo
被调用,为什么有时不被调用?如何防止_socket.getaddrinfo
被调用?因为它减慢了我的网站速度,这让我很伤心。
python - What tools should I use to profile Python code on window 7
I want to profile python code on Widnows 7. I would like to use something a little more user friendly than the raw dump of cProfile. In that search I found the GUI RunSnakeRun, but I cannot find a way to download RunSnakeRun on Windows. Is it possible to use RunSnakeRun on windows or what other tools could I use?
Edit: I have installed RunSnakeRun now. That's progress, thanks guys. How do you run it without a linux command line?
Edit 2: I am using this tutorial http://sullivanmatas.wordpress.com/2013/02/03/profiling-python-scripts-with-runsnakerun/ but I hang up at the last line with "python: can't open file 'runsnake.py': [Errno 2] No such file or directory "