Node.js性能测试及代码优化

性能测试

压力测试工具

  • apache bench
  • webbench

 

ab使用方法及语句

https://blog.csdn.net/weixin_39089928/article/details/87371792

 

找到性能瓶颈所在地 

性能瓶颈可能在cpu、网卡、硬盘、网关,常常是在nodejs的cpu计算能力

 


Node.js性能分析工具

  • 自带的profile

1、获取性能报告:

node --prof index.js

2、使用ab进行压力测试

eg:

ab -c50 -t15 http://127.0.0.1:3000/download/

// 或者

abs.exe -c50 -t15 http://127.0.0.1:3000/download/

3、分析性能报告:

node --prof-process 性能报告文件名(aaa.log) > 输入的文件(bbb.txt)

使用chrome自带的devtools工具测试(适合初学者)

1、

node --inspect-brk index.js

2、使用chrome的devtools工具,在chrome中输入:

chrome://inspect

start CPU profiling

3、使用ab进行压力测试

4、stop后获取报告


clinic.js

适合大项目来测试

代码优化

计算性能的优化的本质

  • 减少不必要的计算
  • 空间换时间

Node.js http服务性能优化准则:

将服务阶段的计算提前放到启动阶段来计算

eg:

const app = new koa();

app.use(
    mount('/', async (ctx) => {
        ctx.body = fs.readFileSync(__dirname + '/source/index.htm', 'utf-8')
    })
);

优化后:

将计算放入启动阶段,减少了readFileSync的多次计算和utf-8的多次转换

const app = new koa();

const buffer = fs.readFileSync(__dirname + '/source/index.htm');

app.use(
    mount('/', async (ctx) => {
        ctx.status = 200;
        ctx.type = 'html';
        ctx.body = buffer;
    })
);

可使用devtools检测内存泄漏变量

 

内存优化管理

多进程优化

node.js自带 API-cluster 创建多个进程

架构优化

利用CDN+Nginx

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值