不同的編程語言,會有不同 的緩存策略,例如,通過哈希映射、優(yōu)先級隊列等實現緩存。因此,不同的編程語言,在緩存的解決方案方面具有很大差異,可能需要幾分鐘,也可能需要幾小時。
石樓網站建設公司創(chuàng)新互聯,石樓網站設計制作,有大型網站制作公司豐富經驗。已為石樓1000+提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站制作要多少錢,請找那個售后服務好的石樓做網站的公司定做!
但是,在Python中,標準工具包functools實現了一種名為LRU(Least Recently Used)的緩存策略,可以通過傳入參數,來設定緩存最近多少次的計算結果,如果傳入參數為None,那么則不緩存。
你好,你可以考慮使用numpy的函數來做,下面是例子的python代碼
image?=?np.zeros((400,400,3),?dtype="uint8")
raw?=?image.copy()
image[np.where((image==[0,0,0]).all(axis=2))]?=?[255,255,255]
cv2.imshow('Test0',?image)
lower_black?=?np.array([0,0,0],?dtype?=?"uint16")
upper_black?=?np.array([70,70,70],?dtype?=?"uint16")
black_mask?=?cv2.inRange(image,?lower_black,?upper_black)
image[np.where((image?==?[0,0,0]).all(axis?=?2))]?=?[155,255,155]
black_mask[np.where(black_mask?==?[0])]?=?[155]
你把上面的那個image的數值改成你需要改的目標就可以直接替換了。
1. 在動手優(yōu)化之前,先profile看看,程序時間都花在哪些地方了:
python -m cProfile -o output.prof your_program
跑完之后,會生成一個output.profile文件。接下來需要對這個文件進行分析,這方面的工具我推薦SnakeViz,神器。安裝非常簡單,pip install snakeviz 即可。
snakeviz output.prof
運行之后,會打開一個瀏覽器窗口,好好看看,哪些函數耗時最多,耗時是因為調用次數太多呢,還是因為單次調用耗時長,明確優(yōu)化重點;
2. 減少重復計算,緩存計算結果。看看 functools.lru_cache。
3. 能用list comprehension的地方,不要用for;能用numpy的地方,不要手寫循環(huán),不要用pandas;
4. 看你的回測,40w個tick的話,數據量不算大,應該是直接load到內存里的吧?
5. 還是慢的話,上Numba — Numba,就是安裝麻煩一些,使用起來非常方便,速度提高一兩個數量級沒問題;
6. 如果你用的包PyPy都支持的話,試試pypy;
7. Cython、c module,上面的都沒效果的話,這個是最后的候選方案了。
本文名稱:python函數提速 python函數提高代碼執(zhí)行速度
網頁鏈接:http://www.rwnh.cn/article20/doocijo.html
成都網站建設公司_創(chuàng)新互聯,為您提供定制開發(fā)、微信小程序、云服務器、移動網站建設、全網營銷推廣、網站策劃
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯