gpt4 book ai didi

python - 如何在 OpenWrt(嵌入式 Linux)上加速 python 脚本(缺少 pyc)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:01 27 4
gpt4 key购买 nike

在 OpenWrt 上可以运行 Python 代码(准确地说是迷你 Python),但即使是简单的“Hello World”Python 脚本也需要 6-8 秒才能运行。

根据我的调查,所有 Python 模块都保存在 py 源代码中,并且在每次运行时都在内存中编译。

由于大约有 20 个或更多的模块,并且 OpenWrt 运行在小型嵌入式设备上,这导致启动延迟,即使是最简单的 Python 脚本也是如此。

如何在OpenWrt上加速Python代码的执行?

最佳答案

为了将 Python 脚本的速度提高 10 倍以上,可以选择预编译所有库并将它们编写为 pyc 文件。

如果您不这样做,那么每次都会动态编译所有库,这是非常耗费 CPU 和时间的任务。

您的设备需要至少有 4MB 的可用空间,因为您正在用空间换取时间。

我的诀窍是在启动时检查是否有少于 150 个 pyc 文件,以及是否有将 python 从 py 编译到 pyc。

# count python pyc modules and generate if needed
pyc=`find / -name *.pyc | wc -l`
if [ $pyc -lt 150 ]; then
python -m compileall
fi

如果您仍然看到 python 执行缓慢,请检查是否某些 python 库不在某些子目录中。例如 python-serial 是这样的,为了获得全速,我将 python-serial 目录添加到 statup up 脚本中。

# count python pyc modules and generate if needed
pyc=`find / -name *.pyc | wc -l`
if [ $pyc -lt 400 ]; then
python -m compileall
python -m compileall /usr/lib/python2.7/site-packages/serial/*.py
python -m compileall /usr/lib/python2.7/site-packages/serial/tools/*.py
python -m compileall /usr/lib/python2.7/site-
packages/serial/urlhandler/*.py
fi

也就是说,享受 OpenWrt/Lede 系统上超快的 python 脚本吧!

关于python - 如何在 OpenWrt(嵌入式 Linux)上加速 python 脚本(缺少 pyc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42682168/

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