爲了將Python腳本速度提高10倍以上,可以選擇預編譯所有庫並將它們編寫爲pyc文件。
如果你不這樣做,那麼所有的庫每次動態編譯,這是非常耗時的cpu和螞蟻任務。
您需要擁有至少4MB可用空間的設備,因爲您正在爲時間交換空間。
我的竅門是如果有少於150個pyc文件,並且如果要從py編譯python到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目錄來升級腳本。
# 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 /勒德系統速度極快的Python腳本!
OpenWrt是一個折衷 - 在這種情況下,關於空間與時間。這段代碼是否需要在你的無線路由器上運行? –
是這段代碼需要在wifi路由器上運行,也就是說它不是一個wifi路由器,它是一個恰好也有wifi芯片的嵌入式系統。我在這個設備中使用python來收集和處理傳感器數據。由於系統是如何設計的,所以不可能將數據發送到雲端,它必須在本地進行處理。 – valentt