對於CPU密集型的程式,可以使用multiprocessing的Process,Pool等封裝好的類,通過多進程的方式實現並行計算。但是因為進程中的通信成本比較大,對於進程之間需要大量數據交互的程式效率未必有大的提高。 4、 針對迴圈的優化 每種編程語言都會強調需要優化迴圈。當使用Python的時候 ...
對於CPU密集型的程式,可以使用multiprocessing的Process,Pool等封裝好的類,通過多進程的方式實現並行計算。但是因為進程中的通信成本比較大,對於進程之間需要大量數據交互的程式效率未必有大的提高。
4、 針對迴圈的優化
每種編程語言都會強調需要優化迴圈。當使用Python的時候,你可以依靠大量的技巧使得迴圈運行得更快。然而,開發者經常漏掉的一個方法是:避免在一個迴圈中使用點操作。例如,考慮下麵的代碼:
每一次你調用方法str.upper,Python都會求該方法的值。然而,如果你用一個變數代替求得的值,值就變成了已知的,Python就可以更快地執行任務。優化迴圈的關鍵,是要減少Python在迴圈內部執行的工作量,因為Python原生的解釋器在那種情況下,真的會減緩執行的速度。
除了上面在ipython使用到的timeit模塊,還有cProfile。cProfile的使用方式也非常簡單:python–m cProfile filename.py,filename.py是要運行程式的文件名,可以在標準輸出中看到每一個函數被調用的次數和運行的時間,從而找到程式的性能瓶頸,然後可以有針對性地優化。
進群:125240963 即可獲取數十套PDF哦!