• 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出现率
      • 审查代码,每次代码版本测试/发布前进行审查,及时对有问题的代码进行优化和修复
      • 核心代码编写注释,方便后期维护和二次开发
      • 抽象通用组件,提高代码复用性,减少冗余代码
      • 编写测试单元,发版前运行测试单元
  • 相关阅读:
    如何实现多个不同目录下的Anaconda软件环境切换
    【BOOST C++ 10 时间数据】(3)本地不独立时间(11-11)
    Jenkins使用pipeline部署服务到远程服务器
    数据结构之图(最小生成树问题)
    nodejs搭建本地服务
    Linux教程:如何安装redis服务并搭建三主三从集群部署环境
    Oracle CPU使用率过高问题处理
    tcpdump进行DNS抓包
    Python爬虫讲解(超详细)
    hibernate跨数据库,columnDefinition不可移植性改造方案
  • 原文地址:https://blog.csdn.net/qq_42427109/article/details/125543299