1. Python-3.12.3 新版本發(fā)布 & 性能提升

        共 2680字,需瀏覽 6分鐘

         ·

        2024-04-16 12:00

        概要

        2024 年 4 月 Python 發(fā)布了 python-3.12.3 版本,看了下它的更新日志,還是有不少提升的。讓我感覺比較有意思的是 re 這個老模塊也得到了性能提升,下面我們一起看一下新版本的 re 性能提升了多少。



        場景

        在網(wǎng)絡(luò)上我們經(jīng)常發(fā)現(xiàn),有些人如果使用了比較有攻擊性的辭藻,這些敏感詞就會被處理成 * 號。假設(shè)現(xiàn)在要把 “干” 字處理成 “*” 號 ,用 Python 來實現(xiàn),應(yīng)該是類似于下面的一行代碼。

        #!/usr/bin/env python3
        import re
        if __name__ == "__main__": print(re.sub("干", "*", "準(zhǔn)備干一票大的"))

        運行效果

        python3 main.py準(zhǔn)備*一票大的


        想想如果官方通過算法改進(jìn)提升了 re.sub 的性能,由于我們的程序直接依賴于它,理論上我們程序的性能也會跟著提上去。

        在編程世界里,還真的這種好事;不用改代碼,只要升級一下 Python 版本就能坐享其成!于是我測試了一下 python-3.11.3 和 python-3.12.3 兩個版本在這個場景下的性能差異。


        Python-3.11.3 性能表現(xiàn)

        python-3.11.3 版本下 re.sub 執(zhí)行 500w 次觀察的耗時情況。

        #!/usr/bin/env python3
        import refrom datetime import datetime

        def bench(): iters = 5000000 start_at = datetime.now()
        for i in range(iters): re.sub("干", "*", "準(zhǔn)備干一票大的")
        end_at = datetime.now()
        print("執(zhí)行耗時 {} \n".format(end_at - start_at))

        if __name__ == "__main__": bench()

        運行三次耗時情況如下,基本穩(wěn)在了 4.5s 左右。

        [root@git tmp]# /usr/local/python-3.11.3/bin/python3 main.py 執(zhí)行耗時 0:00:04.480667 
        [root@git tmp]# /usr/local/python-3.11.3/bin/python3 main.py 執(zhí)行耗時 0:00:04.543946
        [root@git tmp]# /usr/local/python-3.11.3/bin/python3 main.py 執(zhí)行耗時 0:00:04.524779




        Python-3.12.3 性能表現(xiàn)

        python-3.12.3 版本下 re.sub 執(zhí)行 500w 次觀察的耗時情況。

        #!/usr/bin/env python3
        import refrom datetime import datetime

        def bench(): iters = 5000000 start_at = datetime.now()
        for i in range(iters): re.sub("干", "*", "準(zhǔn)備干一票大的")
        end_at = datetime.now()
        print("執(zhí)行耗時 {} \n".format(end_at - start_at))

        if __name__ == "__main__": bench()


        行三次耗時情況如下,基本穩(wěn)在了 3.7s 左右

        [root@git tmp]# /usr/local/python-3.12.3/bin/python3 main.py執(zhí)行耗時 0:00:03.725913 
        [root@git tmp]# /usr/local/python-3.12.3/bin/python3 main.py執(zhí)行耗時 0:00:03.696319
        [root@git tmp]# /usr/local/python-3.12.3/bin/python3 main.py執(zhí)行耗時 0:00:03.703213



        總結(jié)

        In [1]: (4.5 - 3.7) / 4.5Out[1]: 0.17

        3.11.3 版本耗時 4.5s ,3.12.3 版本耗時 3.7s ,算了一下提升了差不多 17% 左右。

        我自己的環(huán)境都升級上去了,跑了段時間除了比之前快了一點之外,也沒發(fā)現(xiàn)什么問題;現(xiàn)在分享給大家。

        官方下載地址:https://www.python.org/downloads/source/


        以上是今天的分享,最后推薦一下我的《Python潮流周刊》專欄。

        這是一個專為國內(nèi) Python 開發(fā)者量身打造的資訊平臺,為你挑選最值得分享的文章、教程、開源項目、軟件工具、播客和視頻、熱門話題等內(nèi)容。

        如果你覺得本文有幫助
        請慷慨分享點贊,感謝啦

        瀏覽 3155
        28點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        28點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
          
          

            1. 俄罗斯女人裸体性做爰 | 日韩精品中文字幕视频 | 三级无码电影 | 女人被狂c躁到高潮娇喘呻吟视频 | 国产精品久久久久久久久久ktv |