问题标签 [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 代码?
我在我的部分 gui 代码中设置了一个简单的生产者消费者模式。我试图只分析特定的消费者部分,看看是否有任何优化的机会。但是,当尝试运行代码时,python -m cProfile -o out.txt myscript.py
我收到了 Pythonpickle
模块引发的错误。
代码中的基本模式是
这通常是来自 GUI 方面的任务,但出于测试目的,我将其设置如下。
但是在尝试启动脚本时,我收到了上述错误消息。
有没有办法解决这个错误?
python - 当我在 Python 中运行 cProfile 时,什么是 {built-in method load}?
我正在运行 cProfile 来对我的 Django 应用程序进行基准测试。相关行如下所示:
什么是{内置方法加载}?它支配着我的执行。
python - 我可以通过 pytest 测试运行 line_profiler 吗?
我已经确定了一些长期运行的 pytest 测试
我现在想用 line_profiler 或 cprofile 之类的东西来检测其中一个测试。我真的很想从测试本身获取配置文件数据,因为 pytest 设置或拆除很可能是缓慢的一部分。
但是,考虑到 line_profiler 或 cprofile 通常如何参与,我不清楚如何使它们与 pytest 一起使用。
python - {built-in method select} 在 Python 3 中做了什么?
使用cProfile
and分析我的应用程序时pstats
,其中一行显示:
这个方法有什么作用,什么时候执行?
python - cProfile 中的“{built-in method mainloop}”是什么意思?
按总时间排序,执行时间第二长的函数是“{built-in method mainloop}”?我用 pstats_viewer.py 查看了同一个条目并单击它,它说:
这是什么意思?
编辑
这是我长时间运行的代码的 cProfile 输出的一部分。我解决的 ODE 越多,用于主循环的时间就越多。这太疯狂了!我认为我的运行时被我的 CUDA 内核中的分支分歧或主机-GPU 内存传输杀死。天哪,我是一个糟糕的程序员!
我是如何让 Tkinter 占用我这么多运行时间的?
python - 如何使用 kCacheGrind 打开 python 配置文件数据?
我在 mac 上使用 qcachegrind 检查配置文件数据时遇到问题。我正在使用 django-extensions 生成配置文件数据。我可以在代码中使用 cProfile 打开正常的配置文件日志pyprof2calltree
,但我无法打开从/manage.py runprofileserver --prof-path=profile_data --use-cprofile --kcachegrind
. 有没有人成功管理过这个?
numpy - 使用 cProfile 分析 numpy 没有给出有用的结果
这段代码:
仅打印:
我可以让 cProfile 与 numpy 一起工作,告诉我它对各种np.*
调用进行了多少次调用以及每个调用花费了多少时间?
编辑
像 hpaulj 建议的那样单独包装每个 numpy 函数太麻烦了,所以我正在尝试这样的事情来临时包装许多或所有感兴趣的函数:
但 cProfile 仍然将它们都称为ff
python - 我如何分析由多个模块和类组成的 python 脚本?
我想分析我的 python 代码。我的代码包括几个模块,其中每个模块都是一个具有多个功能的类。我正在使用 Eclipse PyDev 作为 IDE。我已经阅读了一些关于 timeit 和 cprofile 的 QA,但是当你有使用其他类的类并且通过它们进行链调用时,使用这些分析器有点困难。
我只是想知道是否有像 Java 分析器这样的分析器可以告诉我我需要在哪里优化我的代码(我正在考虑对我的代码的某些部分进行多线程处理,但我想确定哪些部分需要它)。
python - timeit 吃掉返回值
我想以便宜的方式测量函数的执行时间,如下所示:
但是我想使用timeit
,profile
或其他内置的来处理由于平台差异而导致的任何常见缺陷,并且获得实际执行时间而不是墙上时间可能也会更好。
我尝试使用timeit.Timer(foo).timeit(number=1)
,但界面似乎掩盖了返回值。
python - Python 从 cProfile 获得有意义的结果
我在一个文件中有一个 Python 脚本,它需要 30 多秒才能运行。我正在尝试对其进行分析,因为我想大大减少这个时间。
我正在尝试使用 来分析脚本cProfile
,但基本上它似乎告诉我的是,是的,主脚本需要很长时间才能运行,但并没有给出我所期望的那种故障。在终端,我输入如下内容:
我得到的结果是:
这似乎没有告诉我任何有用的信息。绝大多数时间都简单地列出为:
在my_script.py
中,第 18 行无非"""
是文件头块注释的关闭,所以并不是说有大量工作集中在第 18 行。整个脚本主要由基于行的处理组成,其中大部分是字符串拆分、排序和设置工作,所以我期待大部分时间都花在这些活动中的一项或多项上。就目前而言,将 cProfile 的结果中的所有时间分组为发生在注释行上没有任何意义,或者至少不能说明实际上一直在消耗什么。
编辑:我构建了一个与上述案例类似的最小工作示例来演示相同的行为:
mwe.py
并调用它:
要得到结果:
我是否以某种方式错误地使用了 cProfile?