Async / Await会降低服务器性能

编程入门 行业动态 更新时间:2024-10-28 11:33:06
本文介绍了Async / Await会降低服务器性能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用以下代码编写HTTP服务器来检查使用 async / await 是否会影响性能

I'm using the following code to write a HTTP server to check if using async/await can impact the performance

const http = require('http') const server = http.createServer(reqResHandler); server.listen(3000, err => { if (err) throw err console.log('Server listening on: localost:3000') })

无承诺

const reqResHandler = (req, res) => { req.body = []; req.on('data', (chunk)=>req.body.push(chunk)); req.on('end', ()=>{ req.body = Buffer.concat(req.body); res.setHeader("content-length", req.body.length); res.end(req.body); }); };

承诺

async function getBody(req){ var end = new Promise(function(resolve, reject) { req.on('data', (chunk)=>req.body.push(chunk)); req.on('end', ()=>{req.body = Buffer.concat(req.body); resolve(req.body)}); req.on('error', reject); // or something like that }); await end; return req.body; } const reqResHandler = async (req, res) => { req.body = []; var data = await getBody(req); res.setHeader("content-length", data.length); res.end(data); };

当我使用没有承诺的代码时,它每秒产生的吞吐量高达30-31k。但是,如果我使用带有promise的代码,那么它的性能最高可达27-27.5k rps。

When I use the code without promise it gives throughput up to 30-31k requests per second. But if I use code with promise then it gives performance up to 27-27.5k rps max.

我是否正确使用异步等待?

Am I using the async await incorrectly?

推荐答案

你可以像这样执行异步:

You can do the async like this:

async function getBody(req){ return new Promise(function(resolve, reject) { req.on('data', (chunk)=>req.body.push(chunk)); req.on('end', ()=>{req.body = Buffer.concat(req.body); resolve(req.body)}); req.on('error', reject); // or something like that }); } const reqResHandler = async (req, res) => { req.body = []; let data = (await getBody(req)).body; res.setHeader("content-length", data.length); res.end(data);

};

更多推荐

Async / Await会降低服务器性能

本文发布于:2023-11-12 00:41:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1580021.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:性能   服务器   Async   Await

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!