日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python笔记-python编程优化:常用原则和技术介绍

發(fā)布時(shí)間:2023/12/18 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python笔记-python编程优化:常用原则和技术介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本人翻譯自《Exper Python Programming》

'Premature optimization is the root of all evil in programming' -Donald Knuth

?

? ?優(yōu)化的三原則 ? ??

  • 讓它跑起來先

  一個(gè)非常常見的錯(cuò)誤就是在編寫代碼之初我們就開始對代碼進(jìn)行優(yōu)化。讓人傷心的是這通常做的都是無用功,很多軟件只有你跑起來了才會發(fā)現(xiàn)它真正的瓶頸在哪里。

  • 站在用戶的視角看問題

  曾經(jīng)有一個(gè)團(tuán)隊(duì)為了自己的項(xiàng)目跑起來更快加班加點(diǎn)最終達(dá)到了自己滿意的效果,最終交付到客戶那里,結(jié)果發(fā)現(xiàn)客戶并不覺得跑得快對他有什么好處。。。

  • 始終保持代碼可讀(可維護(hù))

  如果當(dāng)你已經(jīng)完成了90%的優(yōu)化任務(wù),而剩下10%的優(yōu)化任務(wù)可能會使你的代碼完全的不可讀,那這個(gè)時(shí)候你最好可以停止你的優(yōu)化工作了。

?

? ?優(yōu)化的策略 ? ? ?

  • 去找別人的問題

  通常情況下我們的軟件測試不可能做到100%的模擬真實(shí)環(huán)境。當(dāng)客戶向我們抱怨軟件運(yùn)行速度不如從前時(shí),我們不妨找找是不是因?yàn)樵诤蛣e的應(yīng)用進(jìn)行交互時(shí)候,其他應(yīng)用造成的速度問題。

  • 刷硬件

  這個(gè)大家都好懂,跑的慢?先看看是不是你配置不夠啊,不夠就買買買!

  • 編寫一個(gè)速度測試文檔

  當(dāng)我們開始優(yōu)化工作的時(shí)候,我們不妨在我們的目標(biāo)函數(shù)下面寫一條注釋“該函數(shù)運(yùn)行時(shí)間不能超過1秒”

?

? ?尋找瓶頸 ? ? ? ?

  • 查看CPU使用率

  從CPU的角度來看呢,又分為宏觀查找和微觀查找。這里最常用的是cProfile,它是一個(gè)c語言的庫,提供對程序資源使用的監(jiān)控還有時(shí)間的記錄。具體的使用方法可以點(diǎn)這里。

  • 查看內(nèi)存使用率

  既然說的是python,我們也就不得不提到python的內(nèi)存分配機(jī)制,不像c語言那樣,我們可以使用一個(gè)函數(shù)就知道當(dāng)前變量的內(nèi)存分配情況,而在python中我們是絕不會知道某個(gè)變量當(dāng)前分配了多少內(nèi)存空間的。。通常情況下,消耗內(nèi)存空間的原因有:1.某個(gè)變量不受控制的增長;2.在全局有太多的實(shí)例,而且沒有監(jiān)控他們對內(nèi)存的使用;3.沒有正確關(guān)閉的線程;4.有__del__屬性的對象在一個(gè)循環(huán)體內(nèi)

  具體的內(nèi)存檢測工具有:Guppy、Heapy

  • 查看網(wǎng)絡(luò)使用率?

  這一部分的話我們使用通用的網(wǎng)絡(luò)監(jiān)測工具就好了。

? ?降低代碼復(fù)雜度 ???

?  兩個(gè)維度:

  • 測量分支復(fù)雜度:程序中ifelse語句的分支有多少
  • 測量時(shí)間空間復(fù)雜度

?

最后兩個(gè)大主題是:多線程和緩存。這兩個(gè)方法也是非常重要的優(yōu)化程序的方法,先寫到這里,看完繼續(xù)更。

轉(zhuǎn)載于:https://www.cnblogs.com/Blaxon/p/4827007.html

總結(jié)

以上是生活随笔為你收集整理的python笔记-python编程优化:常用原则和技术介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。