问题标签 [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.

0 投票
0 回答
181 浏览

python - 我们可以在 python profiling 中找到内置方法调用的位置吗?

当我使用 cProfile 分析我的 python 代码时,大部分时间都有很多 {built-in method...}。它们可能是第三方 API 或我的 C/Fortran 扩展。问题是我们能否轻松找到这些方法在 python 脚本中的调用位置?谢谢!

0 投票
0 回答
45 浏览

python - 如何分析(视觉)通过 C 扩展在 python 包中实现的 CUDA 代码?

可能重复:
如何使用 Visual Profiler 分析 PyCuda 代码?

CUDA 可视化分析器 (nvvp) 需要一个可执行条目来进行分析,但我的 CUDA 代码是通过 C 扩展在 python 包中实现的。无论如何要在这个 python 包中进行 CUDA 分析?谢谢!

0 投票
2 回答
865 浏览

python - Python:解释 cProfile 日志

我有一种方法可以为每个人确定最合适的人。基本上,字典的项目上有两个嵌套循环,从一个人映射到一个列表(其中相似的列表确定兼容性),如果它大于外部循环的人的先前最大值,则计算并保存 compat .
所以我决定通过更新其他人的兼容性(内循环中的 on)来优化性能,因为兼容性是相同的,当外循环到达人 2 时我不必进行相同的计算和内在的一个人 1 [使用相容关系的对称性]。
好吧,我最终慢了 20 倍. c-profile 日志很奇怪,因为改进版本的所有操作都比未改进代码中的操作具有更好(或相似)的总时间。所以我绝对无法找到瓶颈。:(
谁能给我关于如何解释这些日志的建议?邪恶的指令去哪儿了?

正常代码日志:


“优化”一的日志:

//编辑
以防万一我也可以提供代码。据我所知,后者绝对没有理由比前者慢 20 倍。

正常的一个:

和“优化”:

0 投票
2 回答
5403 浏览

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 之间的区别相同。

谁有经验并愿意提供帮助?

0 投票
1 回答
356 浏览

python - cProfile - 将数据保存在 Python 对象中/延迟写入磁盘

我有一个想用 cProfile 分析的函数,但我还保存了很多关于结果的其他分析 - 这当前保存到一个以编程方式生成名称的目录中,我希望将配置文件数据保存在同一个目录。

但是:目录名称仅在我要分析的函数完成后在concurrent.futures回调函数中计算出来。

有没有一种简单的方法可以将配置文件数据保存在 Python 对象中,该对象可以传递给回调函数(例如,与函数的结果一起返回),以便在知道文件名后写入磁盘?

0 投票
2 回答
7025 浏览

python - 无法在 Python 3 中导入 cProfile

我正在尝试将 cProfile 模块导入 Python 3.3.0,但出现以下错误:

完整代码(cProfile_try.py)如下

0 投票
3 回答
688 浏览

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 信息的提示都非常感谢。

如果有人使用类似的设置,使用不同的分析器,我也会感兴趣。

0 投票
0 回答
317 浏览

multithreading - 如何从 Python 中的回调函数获取 cProfile 结果

我正在尝试确定我的 python 代码的哪些部分运行最慢,以便我更好地了解我需要修复的内容。我最近发现了非常有用的cProfilegprof2dot 。我的问题是我没有看到有关我用作回调的函数的任何信息,我相信这些函数可能运行得非常缓慢。根据我从这个答案中了解到的情况,cProfile 默认情况下只能在主线程中工作,我猜回调使用单独的线程。如果您使用线程库,该答案显示了一种让事情正常工作的方法,但我无法让它适用于我的情况。

这大致是我的代码的样子:

关于如何获取 vis_callback 函数的 cProfile 信息的任何想法?通过修改脚本本身,甚至更好地使用python -m cProfile或其他命令行方法?

我猜这是读取图像或将它们附加到缓慢的队列中。我的直觉是,将它们存储在队列中是一件可怕的事情,但我需要用 matplotlib 显示它们,如果它不在主线程中,它会拒绝工作,所以我想看看损坏到底有多严重有这个解决方法

0 投票
3 回答
6527 浏览

networking - 找到flask应用的瓶颈

我写了一个烧瓶应用程序。当我将它部署在远程服务器中时,我发现它非常慢。所以,我用它做了一些分析实践。请看下面的图片:

我用来分析的代码是:

图片1

远程服务器中进行分析。也许瓶颈是_socket.getaddrinfo

在此处输入图像描述

图二

在本地机器中进行分析。没有发现瓶颈。

在此处输入图像描述

图三

有时,即使在远程服务器中,也没有发现瓶颈。没有_socket.getaddrinfo找到。诡异的! 在此处输入图像描述

我也在远程服务器 python shell 中使用cProfile. 看看这个:

也许有一个事实,就是做一些dns resolve工作需要很多时间,而我自己也无法改变这一点。

谁能告诉我:为什么_socket.getaddrinfo被调用,为什么有时不被调用?如何防止_socket.getaddrinfo被调用?因为它减慢了我的网站速度,这让我很伤心。

0 投票
3 回答
5035 浏览

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 "