js软件是什么意思 小白学前端的注意事项

Python使用FastApi测试;Node.JS使用Fastify;Rust则使用Actix 。  

js软件是什么意思 小白学前端的注意事项
  
文章插图  
选择的Python和Node框架,是在搜索 “最快的<某语言>api “时得到的最高结果;Rust的Actix是一直高度维护的 。  
测试的基础很简单;在我的MacBook Pro M1上,每个框架处理来自网络服务器的5000个基本 “Hello, World “响应需要多长时间?  
我用来运行测试的代码非常简单,显然,我们只关心速度:  
Python  
客户端代码:  
<b>import</b> requests  
from requests.adapters <b>import</b> HTTPAdapter  
from requests.packages.urllib3.util.retry <b>import</b> Retry  
MAX_RETIES = 3  
def create_retriable_session():  
s = requests.Session()  
retries = Retry(  
total=MAX_RETIES,  
)  
s.mount(‘http:<font><i>//’, HTTPAdapter(max_retries=retries))</i></font><font>  
s.mount(‘https:</font><font><i>//’, HTTPAdapter(max_retries=retries))</i></font><font>  
<b>return</b> s  
def main():  
s = create_retriable_session()  
<b>for</b> _ in range(0, 5000):  
s.get(</font><font>”http://127.0.0.1:8000/”</font><font>)  
</font>  
服务器端,使用fastapi:  
from fastapi <b>import</b> FastAPI  
app = FastAPI()  
@app.get(<font>”/”</font><font>)  
async def root():  
<b>return</b> {</font><font>”message”</font><font>: </font><font>”Hello World”</font><font>}  
</font>  
运行服务器:  
uvicorn main:app  
测试结果:  
5.22 s ± 221 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  
下面是使用另外一个框架Fastfy使用 异步 后的代码:  
<b>const</b> fastify = require(‘fastify’)({logger: false})  
<b>const</b> PORT = 8000;  
fastify.get(‘/’, async (request, reply) => {  
<b>return</b> {message: ‘Hello World’}  
})  
<b>const</b> start = async () => {  
<b>try</b> {  
await fastify.listen(PORT)  
} <b>catch</b> (err) {  
fastify.log.error(err)  
process.exit(1)  
}  
}  
start()  
再次测试结果:  
4.49 s ± 84.7 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)  
比较结果:  
FastApi每秒处理约957.85次,Fastfy每秒处理1113.59次 。  
Rust  
use actix_web::{App, get, HttpResponse, HttpServer, Responder};  
#[get(<font>”/”</font><font>)]  
async fn hello() -> impl Responder {  
HttpResponse::Ok().body(</font><font>”{\\\\\\\\”message\\\\\\\\”: \\\\\\\\”Hello World\\\\\\\\”}”</font><font>)  
}  
#[actix_web::main]  
【js软件是什么意思 小白学前端的注意事项】async fn main() -> std::io::Result<()> {  
HttpServer::<b>new</b>(|| {  
App::<b>new</b>()  
.serb> express = require(‘express’)  
<b>const</b> app = express()  
<b>const</b> port = 8000  
app.get(‘/’, (req, res) => {  
res.json({message: <font>”Hello World”</font><font>})  
})  
app.listen(port, () => {  
console.log(`Example app listening at http:</font><font><i>//localhost:${port}`)</i></font><font>  
})  
</font>  
测试结果:  
4.88 s ± 152 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)Rust


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。