天天看點

Python代碼中優化提速的小技巧分享

  python 是一種非常進階的程式設計語言。 它的類型是面向對象和腳本語言。 與c或c等程式設計語言相比,其性能和效率會有一些不足。 當然,不要以為python的效率很高。 更糟糕的是,隻要有正确的代碼規範,就可以達到預期的性能。

  代碼優化原則:

  1. 不要過早優化。 優化的前提是代碼可以正常工作。 過早優化可能會忽略對整體性能名額的把握。 在獲得整體結果之前不要颠倒優先級。

  2. 優化是有代價的。 幾乎不可能解決所有的性能問題。 通常的選擇是時間換空間或空間換時間。

  3.不要優化那些不相關的部分。 如果對代碼的每一部分都進行優化,這些修改會使代碼難以閱讀和了解。 如果你的代碼運作緩慢,首先要找到代碼運作緩慢的地方,一般在内循環,重點優化慢的地方。 在其他地方,稍微耽誤一點時間是沒有效果的。

Python代碼中優化提速的小技巧分享

  避免全局變量:

  很多程式員一開始都會用python寫一些簡單的腳本。 寫腳本的時候,一般都是直接把它們寫成全局變量,比如上面的代碼。 但是,由于全局變量和局部變量的實作方式不同,全局作用域中定義的代碼會比函數中定義的代碼運作得慢很多。 通過将腳本語句放入函數中,通常可以帶來大約 15%-30% 的速度提升。

  循環優化:使用for循環代替while循環,或者使用隐式for循環代替顯式for循環,以減少内部for循環的計算。

  選擇合适的資料結構:

  例如,python 的内置資料結構類似于 c 中的資料結構,它是一個動态數組。 它會預先配置設定一定數量的記憶體空間。 當預先配置設定的記憶體空間用完,你繼續往裡面添加元素時,它會申請更大的記憶體空間,然後把原來的元素全部複制下來,然後銷毀之前的記憶體空間,再插入新的元素。

  删除元素時的操作類似,當使用的記憶體空間小于預配置設定記憶體空間的一半時,會再申請一個小記憶體,做一個元素拷貝,之後會破壞原來的大記憶體空間。是以,如果添加和删除操作頻繁,并且新增和删除的元素數量較多,則清單效率不高,這時候就應該考慮使用了。 它是一個雙端隊列,同時具有棧和隊列的特性,可以在兩端進行o(1)複雜度的插入和删除操作。

  以上是關于python代碼中優化提速的小技巧分享,由​​多測師​​親自撰寫。