NodeJS提升性能
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
相关问题:
1.单机
1.1尽量使用异步
同步操作会阻塞主线程,降低性能
1.2 缓存
将一些不经常变化的数据缓存(内存或redis)起来,可以改善性能
1.3 gzip压缩
压缩可以使数据更快的到达前端
1.4 减少使用JSON序列化与反序列化
尽可能直接使用Object,不要转换成string
1.5 适当使用多线程或多进程
Node 12.12.0以上版本workthread已经为稳定版本
1.6 日志优化
生产版本可以关掉不必要的日志打印
1.7 使用模板引擎
如使用ejs模板渲染成html页面后返回给浏览器,并可以开启缓存
1.8 资源文件压缩
例如图片可以进行压缩
2.其他
2.1 负载均衡
- Nginx
- HAProxy
2.2 水平扩展
2.2.1 本机集群模式
本地 Node.js 集群是在一个机器上扩展 Node 应用程序的基本方法(http://nodejs.cn/api/cluster.html)。您的进程的一个实例(称为 “master”)是负责生成其他子进程(称为 “worker”)的实例,每个进程对应一个运行应用程序的进程。 传入请求按照所有 worker 循环策略进行分发,并且在同一端口上访问。
这种方法的主要缺点是必须在代码内管理主进程和工作进程之间的差异,通常使用经典的 if-else 块,而无法轻松修改进程中的进程数。
2.2.2 PM2进程管理
License
License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎
Reference:
1.苏宁的Node.js实践