一、全新網(wǎng)絡(luò)請(qǐng)求鏈
- 發(fā)起請(qǐng)求(callStart)
- 檢查代理開始(proxySelectStart)
- 檢查代理結(jié)束(proxySelectEnd)
- DNS解析開始(DNS Start)
- DSN解析結(jié)束(DNS End)
- 網(wǎng)絡(luò)連接開始(connectStart)
- 網(wǎng)絡(luò)安全連接開始(secureConnectStart)注:https
- 網(wǎng)絡(luò)安全連接結(jié)束(secureConnectEnd)注:https
- 網(wǎng)絡(luò)連接結(jié)束(connectEnd)
- 獲得網(wǎng)絡(luò)連接(connectionAcquired)
- 請(qǐng)求頭開發(fā)(requestHeadersStart)
- 請(qǐng)求頭結(jié)束(requestHeadersEnd)
- 響應(yīng)請(qǐng)求頭開始(responseHeadersStart)
- 響應(yīng)請(qǐng)求頭結(jié)束(responseHeadersEnd)
- 響應(yīng)請(qǐng)求體開始(responseBodyStart)
- 響應(yīng)請(qǐng)求體結(jié)束(responseBodyEnd)
- 連接釋放(connectionReleased)
-
請(qǐng)求結(jié)束(callEnd)
image.png
二、復(fù)用網(wǎng)絡(luò)請(qǐng)求鏈
- 發(fā)起請(qǐng)求(callStart)
- 獲得網(wǎng)絡(luò)連接(connectionAcquired)
- 請(qǐng)求頭開發(fā)(requestHeadersStart)
- 請(qǐng)求頭結(jié)束(requestHeadersEnd)
- 響應(yīng)請(qǐng)求頭開始(responseHeadersStart)
- 響應(yīng)請(qǐng)求頭結(jié)束(responseHeadersEnd)
- 響應(yīng)請(qǐng)求體開始(responseBodyStart)
- 響應(yīng)請(qǐng)求體結(jié)束(responseBodyEnd)
- 連接釋放(connectionReleased)
-
請(qǐng)求結(jié)束(callEnd)
image.png
三、思考?
客戶端優(yōu)化網(wǎng)絡(luò)請(qǐng)求空間在如下幾個(gè)鏈路上
- 檢查代理開始(proxySelectStart)
- 檢查代理結(jié)束(proxySelectEnd)
- DNS解析開始(DNS Start)
- DSN解析結(jié)束(DNS End)
- 網(wǎng)絡(luò)連接開始(connectStart)
- 網(wǎng)絡(luò)安全連接開始(secureConnectStart)
- 網(wǎng)絡(luò)安全連接結(jié)束(secureConnectEnd)
- 網(wǎng)絡(luò)連接結(jié)束(connectEnd)
代理檢查基本不耗時(shí),優(yōu)化空間不大(考慮防代理可設(shè)置:builder.proxy(Proxy.NO_PROXY)),主要考慮DNS解析、網(wǎng)絡(luò)連接兩個(gè)方向
四、如何優(yōu)化
1.DNS解析優(yōu)化
- 直接用ip去訪問(wèn),減少dns解析流程(考慮httpdns)
- 增加dns過(guò)期時(shí)間(域名服務(wù)商)
- 應(yīng)用緩存域名解析對(duì)應(yīng)ip,自定義dns解析
2.復(fù)用網(wǎng)絡(luò)連接
- 調(diào)整網(wǎng)絡(luò)最大請(qǐng)求數(shù)
- 調(diào)整連接池復(fù)用數(shù)和存活時(shí)長(zhǎng)
- 按業(yè)務(wù)需要考慮多域名
- 根據(jù)需要?jiǎng)討B(tài)調(diào)整網(wǎng)絡(luò)連接、讀寫超時(shí)時(shí)長(zhǎng)

