小编You*_*cef的帖子

如何使用 IPython %lprun 魔术函数分析类方法

如何分析在函数内部调用的对象的方法?我%lprun在 jupyter 笔记本中使用魔法。请参阅以下ex.py示例文件:

class foo():
    def __init__(self, a=0, n=1):
                self.a=a
                self.n=n

    def compute(self):
        result = 0
        for i in range(self.n):
            result += self.a
        return result 

def my_func():
    a = 1
    n = 1000
    my_foo = foo(a, n)
    result = my_foo.compute()
    print(result)
Run Code Online (Sandbox Code Playgroud)

然后,从我的 jupyter 笔记本,我可以分析my_func

 from ex import my_func

 %lprun -f my_func my_func()
Run Code Online (Sandbox Code Playgroud)

但我无法描述我的compute方法:

from ex import my_func

%lprun -f my_foo.compute my_func()
Run Code Online (Sandbox Code Playgroud)

我想要的甚至可能吗?我必须如何在-f参数中填充类方法才能使其工作?

根据文档,“cProfile 只对显式函数调用进行次数,而不是由于语法而调用的特殊方法”,......所以它应该可以工作。

我发现的一个(可能)相关问题是here

python profiling class ipython jupyter-notebook

9
推荐指数
1
解决办法
5083
查看次数

Dask Distributed - 如何为每个工作线程运行一个任务,使该任务在工作线程可用的所有核心上运行?

我对使用distributedpython 库非常陌生。我有 4 个工作线程,并且我已经为每个工作线程使用 14 个核心(在 16 个可用核心中)成功启动了一些并行运行,从而导致 4*14=56 个任务并行运行。

但是,如果我只想让每个工人同时执行一项任务,该怎么办?这样,我期望在工作线程上并行使用 14 个内核执行一项任务。

python cpu-cores dask-distributed

6
推荐指数
1
解决办法
2774
查看次数