答:
1. 手最佳化前先profile看看程式間都花哪些:
python -m cProfile -o output.prof your_program
跑完output.profile檔案接需要檔案進行析面工具我推薦SnakeViz神器安裝非簡單pip install snakeviz 即
snakeviz output.prof
執行打瀏覽器視窗看看哪些函式耗耗呼叫數太呢單呼叫耗明確最佳化重點;
2. 減少重複計算快取計算結看看 functools.lru_cache
3. 能用list comprehension要用for;能用numpy要手寫迴圈要用pandas;
4. 看測40wtick資料量算應該直接load記憶體吧
5. 慢Numba — Numba安裝麻煩些使用起非便速度提高兩數量級沒問題;
6. 用包PyPy都支援試試pypy;
7. Cython、c module面都沒效候選案
答:
1. 手最佳化前先profile看看程式間都花哪些:
python -m cProfile -o output.prof your_program
跑完output.profile檔案接需要檔案進行析面工具我推薦SnakeViz神器安裝非簡單pip install snakeviz 即
snakeviz output.prof
執行打瀏覽器視窗看看哪些函式耗耗呼叫數太呢單呼叫耗明確最佳化重點;
2. 減少重複計算快取計算結看看 functools.lru_cache
3. 能用list comprehension要用for;能用numpy要手寫迴圈要用pandas;
4. 看測40wtick資料量算應該直接load記憶體吧
5. 慢Numba — Numba安裝麻煩些使用起非便速度提高兩數量級沒問題;
6. 用包PyPy都支援試試pypy;
7. Cython、c module面都沒效候選案