在 docker 容器中分析 Python 非常慢(cProfile 和 pyinstrument)

Eda*_*aor 8 python profiling cprofile docker

我正在尝试分析一些非常简单的代码(同时使用 cProfile 和 pyinstrument)。代码是:

sum(1 for e in range(1533939))
Run Code Online (Sandbox Code Playgroud)

在没有激活分析器的情况下运行代码时,速度非常快(~85 毫秒)。然而,当试图在分析器中运行相同的代码时,突然需要将近 13 秒。

我正在这样做(在 Jupyter 笔记本中):

%%prun

sum(1 for e in range(1533939))
Run Code Online (Sandbox Code Playgroud)

我认为问题在于生成器表达式中对“next”的大量调用导致的开销,但是,在我的主机(不在容器内)上运行相同的实验在分析时没有显示速度变慢。

知道为什么分析器可能会减慢这段代码的速度吗?

作为记录,我使用 Jupyter 的容器“jupyter/scipy-notebook”作为基本容器。

谢谢!