node

166 阅读1分钟

进行压力测试 压测工具ab, webbench...

linux top命令 查看cpu 

         iostat 查看硬盘


先做压测,配合上述两个命令找到性能瓶颈

一般是开启性能分析工具之后,然后开启压测


性能分析工具

1、node自带性能分析工具 profile

使用是在启动的时候node --prof xxx.js,运行之后会产生一个巨大的log文件,这时候运行 node --prof-process xxxxx.log > profile.txt,运行完后会输出一个profile.txt

2、chrome devtool  命令 node --inspect-brk xxx.js,然后在chrome 地址栏输入chrome://inspect就一个页面,该页面会有命令中的xxx.js,然后点击该js文件就可以进入到调试页面

3、clinic.js


node buffer内存分配策略

node创建buffer实际是在底层c++中创建一个char;

这里分为两种情况大于8KB和小于8KB

小于8KB的时候他会分配一个8KB的char,然后每次创建新的小于8KB的buffer都会从创建好的char的内存中切出一个小的内存地址给buffer使用,当char中剩余的内存不足以分配最新创建的一个buffer的时候,他会重新创建一个8KB的char,然后从新创建的char中为其分配内存,当某一个新创的buffer的内存符合第一个char剩余的内存的时候就会使用第一个char的剩余内存

当开始创建的char中某一个buffer被释放了,该内存空间会等待下一个匹配的buffer来进行char内存空间的复用

这种方式在c++中是一个池的概念