成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

加速函數,每個Python程序員都應該了解標準庫的Lru_cache

開發 后端
Python標準庫附帶了許多鮮為人知但功能強大的軟件包。對于本示例,將使用functools中的lru_cache。(LRU代表“最近最少使用(Least Recently Used)”,正如字面意思,這明確意味著緩存將保留最近的輸入/結果對。)

加速新境界:通過使用簡單的緩存功能,僅需一行代碼即可加速你的函數。

不久前,我構建了一個日常運行的ETL管道,其通過從外部服務中抽取數據來豐富輸入數據,然后將結果加載到數據庫中。

隨著輸入數據的增加,等待外部服務器的響應變得非常費時,這使得ETL進程越來越慢。經過一番調查,我發現與總記錄數(~500k)相比,并沒有太多不同的輸入值(~500)。

因此,換句話說,使用相同的參數調用外部服務時,每個參數大約要重復執行1000次。

像這樣的情況是使用緩存的主要用例。緩存一個函數意味著無論何時首次計算函數的返回值,都會將其輸入和結果放在字典中。

對于每個后續函數調用,首先通過查看緩存來檢查結果是否已經計算過。如果在緩存中找到了,那就很完美,不需要再次計算!如果沒有找到,就計算結果并將輸入和結果存儲在緩存中,以便下一個函數調用時查找到它。

Python標準庫附帶了許多鮮為人知但功能強大的軟件包。對于本示例,將使用functools中的lru_cache。(LRU代表“最近最少使用(Least Recently Used)”,正如字面意思,這明確意味著緩存將保留最近的輸入/結果對。)

從Fun(c)tools中導入lru_cache

把c放進括號中有點像一個蹩腳的笑話,因為這樣functools就變成了fun tools(有趣的工具),使用緩存當然很有趣!

加速函數,每個Python程序員都應該了解標準庫的Lru_cache

這里無需過多解釋。導入lru_cache并用它來裝飾一個函數,該函數將生成斐波那契數。

裝飾函數意味著將該函數與緩存函數包裝在一起,隨后每當調用fib_cache函數時,都將調用緩存的函數。

比賽開始

加速函數,每個Python程序員都應該了解標準庫的Lru_cache

我們進行了一個實驗,計算函數的緩存和未緩存版本從0到40計算所有斐波那契數所花費的時間,并將結果放入各自的列表中。

獲勝者

加速函數,每個Python程序員都應該了解標準庫的Lru_cache

對于較小的斐波那契數,二者并沒有什么大的區別,但是一旦達到約30個樣本,緩存函數的效率增益就開始累加。

我沒有耐心讓未緩存的版本運行超過40個樣本,因為它的運行時間是指數增長的。而對于緩存的版本,它的運行時間只是線性增量。

加速函數,每個Python程序員都應該了解標準庫的Lru_cache

這就完成了!距離Python緩存僅一行代碼之遙。畢竟它并沒那么可怕。

在初始示例中,我在Pandas數據框上使用了數據轉換。值得一提的是,緩存的函數可以傳遞給Pandas apply,而無需進行其它的任何更改。

是不是很棒?你也來試試吧~

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-04-10 12:36:41

硬件代碼

2012-02-28 10:52:13

2018-03-07 12:57:53

2013-03-20 17:58:41

虛擬內存程序員

2015-04-16 10:26:51

程序員 Python Ruby

2011-07-25 10:09:57

Python

2023-12-27 09:00:00

Python魔術方法開發

2021-10-20 06:05:01

編程語言開發

2022-09-11 15:20:05

程序員命令開發

2021-10-18 10:21:28

程序員技能優化

2012-10-11 10:32:48

Linux命令程序員

2023-01-31 15:43:47

2014-07-16 09:34:44

2022-10-31 08:02:07

Python函數式編程

2011-06-16 08:58:57

軟考程序員

2024-04-24 14:52:26

JavaScriptWeb 開發

2017-04-05 12:04:17

python函數

2020-09-03 12:54:37

Python程序員macOS

2017-04-07 10:40:48

程序員學習命令行

2023-11-02 14:21:06

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中的精品av涩差av | 日日干天天操 | 国产精品国产精品国产专区不卡 | 欧美精品导航 | 成人久久18免费网站 | 99久9 | 国产一级片在线播放 | 午夜一级做a爰片久久毛片 精品综合 | 久久久婷婷 | 免费a v网站| 一区二区三区免费在线观看 | 国产男女猛烈无遮掩视频免费网站 | 亚洲久草 | 黄色福利| 少妇一级淫片aaaaaaaaa | 国内精品视频在线 | 精品一区二区三区不卡 | 成人三级av | 国产精品亚洲精品日韩已方 | 羞羞网站在线观看 | 欧美日韩综合视频 | 韩国精品一区二区三区 | 成人免费观看视频 | 国产一区二区三区在线视频 | 日本在线免费视频 | 人人看人人搞 | 久久久成人动漫 | 亚洲巨乳自拍在线视频 | 欧美在线日韩 | 久在线| 久久99视频这里只有精品 | 91高清视频在线观看 | 亚洲图片视频一区 | 国产成人精品久久二区二区91 | 亚洲品质自拍视频网站 | 黄色国产在线播放 | 免费在线看黄 | 欧美日韩中文字幕在线 | 国产欧美日韩一区二区三区 | 人人性人人性碰国产 | 别c我啊嗯国产av一毛片 |