亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 http 持久化比非持久化慢

使用 http 持久化比非持久化慢

大話西游666 2022-01-05 11:09:50
我已經使用 simplehttpserver 設置了一個 http 服務器。我有 2 個客戶端使用請求庫。兩者都連續請求 100 個文件。一個使用持久化,另一個使用非持久化。發送的文件很小,每個大約 20 個字節。計算總時間。結果:非持久化比持久化快 9/10 倍。對此有解釋嗎?示例代碼服務器:Handler = SimpleHTTPServer.SimpleHTTPRequestHandlerHandler.protocol_version = "HTTP/1.1" httpd = SocketServer.TCPServer(("", 8000), Handler)httpd.serve_forever()客戶:header = {"Connection" : "close"} #remove for persistants = requests.session()response = sess.get((url) + filename, headers=header)
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

我無法重現這個(Python 3.7)。


使用Connection: close標題,我的 RPS 速度降低了大約 25%。


服務器.py

import socketserver

import http.server


PORT = 8000

Handler = http.server.SimpleHTTPRequestHandler

Handler.protocol_version = "HTTP/1.1" 

httpd = socketserver.TCPServer(("", PORT), Handler)

httpd.serve_forever()

客戶端.py

import requests

import time


def test(headers, n=1500):

    with requests.session() as sess:

        t0 = time.time()

        for x in range(n):

            assert sess.get('http://127.0.0.1:8000/server.py', headers=headers).content

        t1 = time.time()

        print(headers, n / (t1 - t0), 'rps')


test({})

test({"Connection": "close"})

test({"Connection": "keep-alive"})

$ python3 client.py

{} 514.4191683333725 rps

{'Connection': 'close'} 424.7938184319337 rps

{'Connection': 'keep-alive'} 492.5251360628307 rps


查看完整回答
反對 回復 2022-01-05
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

我不知道為什么,但是當我運行它時,我得到了以下結果


$ python3 client.py{} 22.51256576012429 rps

{'Connection': 'close'} 320.24445743902817 rps

{'Connection': 'keep-alive'} 22.209050176933395 rps


查看完整回答
反對 回復 2022-01-05
  • 2 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號