gpt4 book ai didi

Yocto 中的 Python 3 在 Raspberry Pi 上非常慢

转载 作者:太空狗 更新时间:2023-10-29 21:57:58 25 4
gpt4 key购买 nike

我们已经将 Python 2 用于我们目前正在 Raspberry Pi 上制作原型(prototype)的嵌入式应用程序。有点慢,但可以接受。

现在我们已经将应用程序移植到 Python 3。但是由于某些原因,应用程序的运行速度比 Python 2 慢了大约 4 倍!我原以为 Python 3 会慢一点,但事实并非如此!

我们的 Linux 发行版基于 Yocto 2.2 Morty,我们使用默认的 Python 3.5.2 配方,没有任何定制。我们还使用 meta-raspberrypi 层来实现 Raspberry 兼容性。

我尝试计时“pip3 --help”并得到以下结果:

$ time pip3 --help >/dev/null

real 0m22.686s
user 0m22.210s
sys 0m0.420s

然后我使用最新的 Raspbian 发行版在相同的硬件(以及相同的 SD 卡)上尝试了相同的测试:

$ time pip3 --help >/dev/null

real 0m6.874s
user 0m6.530s
sys 0m0.310s

$ time pip --help >/dev/null

real 0m4.329s
user 0m4.000s
sys 0m0.300s

Python 2 pip 比 Python 3 快一点,但最重要的是 pip3 在 Raspbian 上的运行速度比在 Yocto 上快 3 倍以上!

测试的可重复性很强,所以它们不是由 pyc 生成或缓存或类似的东西引起的。

有什么想法可以让 Yocto 和 Raspbian 一样快吗?

更新:

在下面的 Raspbian 和 Yocto 中有一些关于不同版本的 Python 和 Pip 的讨论,所以我只使用 Python 标准库做了一个新的基准测试:

Yocto 2.2 莫蒂:

sh-4.3# time python3 --version
Python 3.5.2

real 0m0.024s
user 0m0.010s
sys 0m0.000s
sh-4.3# time python3 -c "import asyncio"

real 0m3.439s
user 0m3.300s
sys 0m0.110s

树莓派:

pi@raspberrypi:~$ time python3 --version
Python 3.4.2

real 0m0.020s
user 0m0.000s
sys 0m0.010s
pi@raspberrypi:~$ time python3 -c "import asyncio"

real 0m2.023s
user 0m1.850s
sys 0m0.160s

然后我在 Raspbian 上下载了 Python 3.5.2 并从源代码构建它,没有自定义配置 (./configure; make; make install)。使用 Python 3.5.2 我得到以下结果:

pi@raspberrypi:~$ time python3.5 --version
Python 3.5.2

real 0m0.018s
user 0m0.000s
sys 0m0.010s
pi@raspberrypi:~$ time python3.5 -c "import asyncio"

real 0m2.689s
user 0m2.610s
sys 0m0.070s

因此,Python 3.5 似乎比 3.4 慢得多,但在默认 Yocto 构建上仍然比在具有默认构建配置的 Raspbian 上慢得多。

更新 2:

我在我的 Yocto 系统上以相同的方式构建了 Python 3.5.2 ("./configure; make; make install") 并且与标准 Python 配方相比获得了大约 20% 的改进:

root@la:/var/src/Python-3.5.2# time python3.5 -c "import asyncio"

real 0m2.914s
user 0m2.750s
sys 0m0.130s

最佳答案

Yocto Python 2 在 optimized mode 中编译.尝试使用 ./configure --enable-optimizations 配置 Python 3(我认为是 3.5.3+),同样讨论过 here .

关于Yocto 中的 Python 3 在 Raspberry Pi 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com