• NodeJs 性能提升方案


    ㅤㅤㅤ
    ㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(人的一生是短暂的,但如果卑劣的度过这一生,就太长了 - 莎士比亚)
    ㅤㅤㅤ
    ㅤㅤㅤ
    ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ在这里插入图片描述

    • 提高性能

      • node自身
        • 多用promise并行处理io,或者其他的第三方异步io库,比如async,bluebird
        • 减少同步代码,多使用异步
        • 使用typescript,虽然开发成本提高了,但性能会提升。因为动态类型的代码,v8虚拟机在运行的时候会反复的执行优化,如果不更改类型,那么就不会触发v8虚拟机的反优化。也是一个提高性能的手段
        • 使用多进程,充分利用CPU的多核机制。提高处理非IO类业务的性能
      • 数据库
        • 热点数据使用缓存,比如redis
        • 数据库分库分表,减小库和表的数据大小,提高检索性能。数据量的减少意味着检索范围也会缩小,从而提升了性能
        • 数据库表添加索引,对热点字段建立索引,提高检索性能。数据库性能提升的主要方式之一
        • sql优化
          • 比如mongodb数据库,避免使用" n e " , " ne"," ne""exist","$not"等字段,这些字段在查询时不会使用索引,所以检索性能较差
          • 限制返回的结果数,比如limit。当结果数过多时,会降低性能
          • 表字段内容不要过大,比如几m,几十m的那种。过大的字段会在保存和查询的时候降低性能
      • 数据库集群 以mongodb为例
        • 使用副本集,读写分离,提高检索性能
        • 当数据量达到千万,亿级别时可以使用分片。副本集虽然读写分离,但数据的存储并没有分离。mongodb的分片解决了这个问题,相比较副本集,一个副本存储了所有数据库,但分片等于一个副本的数据分别存储到数十个,数百个分片中。查询的时候,同时从这些分片中进行查询,将查询的性能又提高了一个档次
    • 提高质量

      • 使用typescript,集成eslint,避免使用any,提前检查错误,减少bug出现率
      • 审查代码,每次代码版本测试/发布前进行审查,及时对有问题的代码进行优化和修复
      • 核心代码编写注释,方便后期维护和二次开发
      • 抽象通用组件,提高代码复用性,减少冗余代码
      • 编写测试单元,发版前运行测试单元
  • 相关阅读:
    动态渲染 echarts 饼图(vue 2 + axios + Springboot)
    架构师之路3. 富士康 - 再也不见
    互联网金融基础知识--数字货币
    SSM框架集成
    springboot jar包瘦身
    ELK日志分析系统
    SpringBoot Application事件监听的实现方案(动态写入yml)
    基于matlab实现的电力系统稳定性分析摆幅曲线代码
    【数据结构】红黑树(简单易懂)
    Rflysim | 传感器标定与测量实验一
  • 原文地址:https://blog.csdn.net/qq_42427109/article/details/125543299