python的效能優化方案

2021-09-24 14:56:15 字數 1798 閱讀 4814

-n 代表的是總的請求數,-c代表一次併發裡面的請求數

read db:讀取資料庫的時候,使用cache

**邏輯:盡量避免在for迴圈裡面使用query

給logger加上判斷,當debug模式為false的時候,很多不必要的地方不需要寫log

gunicorn:使用gevent啟用worker,將worker的數量變成三個,核數+1,將gevent放在requirement中。worker個數,worker型別,timeout時間

nginx: 修改配置檔案,timeout設定為600/300s

在最外面加上:

worker_rlimit_nofile 65535;
在http塊內加上:

fastcgi_send_timeout 600;

fastcgi_read_timeout 600;

在server塊的location裡面加上:

proxy_connect_timeout 600s;

proxy_read_timeout 600s;

proxy_send_timeout 600s;

nas:掛載引數上需要增加乙個noresvport引數來規避以後例行維護可能造成的nas服務中斷

使用python的一些計算執行時間的工具來優化**,cprofile、line_profiler、timedelta

對python本身的一些優化 pypy/cpython

line_profiler是乙個對函式進行逐行分析的模組,kernprof是乙個可以執行line_profiler或者python標準庫cprofile的乙個很方便的指令碼工具。

安裝:$ pip install line_profiler

遇到錯誤提示沒有cpython,安裝一下:

pip install cpython

繼續報錯:command 'x86_64-linux-gnu-gcc' failed with exit status 1

解決方案:裡面的sudo apt install python3.6-dev解決了問題

首先使用kernprof指令碼執行來開始我們的效能優化工作:

kernprof -l run.py
上面的操作會建立乙個lineprofiler的例項並且會把它插入到命名空間裡面。然後它能以裝飾器的方式來使用,所以我們只需要把我們需要分析的函式上面套上這個裝飾器:

@profile

deffunc_need_profile

(*args,

**kwargs):.

..

這裡直接加上裝飾器,不需要在**裡面額外import任何東西。

kernprof會把分析的結果放在script_to_profile.py.lprof這個二進位制檔案裡面,然後我們可以去看這個分析結果:

python -m line_profiler run.py.lprof

Lustre效能優化方案

部落格公告 1 本部落格所有部落格文章搬遷至 部落格蟲 網路頻寬往往決定著lustre檔案系統的聚合頻寬。lustre是通過多個oss同時讀取資料來提高系統整體的讀寫效能,然而,如果網路傳輸的效能過低,則無法發揮lustre檔案系統的效能優勢。從以下幾點考慮網路頻寬對效能的影響 網路型別 tcp i...

Android效能優化方案

android效能優化的方案比較多,在開發過程中,主要考慮從以下幾個方面優化 1.布局優化 2.繪製優化 3.記憶體洩漏優化 4.響應速度優化 5.listview優化 6.bitmap優化 7.執行緒優化 接下來我們從這幾個方面為大家簡單介紹優化方案 大家肯定都知道android中有許多布局,比如...

前端效能優化方案

1 雪碧圖 css sprites 就是把多張圖合到一張圖裡面,然後通過css來分別取用。這樣就可以減少請求數量。2 合併多個指令碼和樣式表 3 合理設定快取 可以在下次訪問時減少部分請求,直接在快取中讀取。4 懶載入 lazy load 只載入可見的部分。先將img標籤中的src鏈結設為同一張 空...