1. reqwest
#[macro_use]
extern crate timeit;
fn main() -> Result<(), Box<dyn std::error::Error>> {
timeit!({
let _ = reqwest::blocking::get("http://localhost/")?
.text()?;
});
Ok(())
}
2. chttp
use chttp::prelude::*;
#[macro_use]
extern crate timeit;
fn main() -> Result<(), Box<dyn std::error::Error>> {
timeit!({
let _ = chttp::get("http://localhost/")?
.text()?;
});
Ok(())
}
3. python requests
import requests
%timeit requests.get('http://localhost/').text
输出:
-
reqwest 10 loops: 40.283526 ms
-
chttp 1000 loops: 264.017153 µs
-
requests 1.56 ms ± 27 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
reqwest 换成 http1.0 协议也不变
localhost 是本地 nginx
这性能比 python requsts 都慢了几十倍,有点夸张