Pythonスクリプトを10倍以上高速化するには、すべてのライブラリをプリコンパイルしてpycファイルとして書き込むオプションがあります。
これをしないと、すべてのライブラリが毎回動的にコンパイルされ、これは非常にCPU時間のかかる作業です。
時間の余裕があるため、空き容量が4MB以上のデバイスが必要です。
私のやり方は、pycファイルが150個未満であれば起動時にcheckを作成し、pythonからpycにpythonをコンパイルする場合は作成することです。
# 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/Ledeシステムで高速のpythonスクリプトを楽しんでいることです。
OpenWrtはトレードオフです。この場合、スペースと時間はトレードオフです。このコードはWi-Fiルーターで実行する必要がありますか? –
はい、このコードはWi-Fiルーターで稼動する必要があります。つまり、Wi-Fiルーターではなく、ワイファイチップを持っている組み込みシステムです。このデバイスでは、センサーデータを収集して処理するためにPythonを使用しています。システムがどのように設計されているので、データをクラウドに送信することは不可能であるため、ローカルで処理する必要があります。 – valentt