进行压力测试 压测工具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++中是一个池的概念