• 经常会遇到的性能优化的问题-----聊聊


    1、应用高并发如何优化

    • 架构优化
      • 软硬负载均衡的使用
      • 缓存的使用
      • 快速读写的使用
      • 处理复杂度比较高且可以剥离使用异步的,使用异步响应  
    • 代码优化
      • 避免死锁
      • 锁粒度的控制
      • 线程池的使用:业务复杂度的控制
      • 内存分配:避免大块内存的分配,避免内存泄漏的发生,避免递归调用,threadlocal使用时,在业务逻辑结束时,显示调用remove方法。
      • cpu资源的使用:线程的合理分配及回收,优先级等的出让,IO模式的使用
      • 异常的捕捉处理
    • 一句话,高并发,就在于cpu的高度利用,以及io等的高度配合,所以阻塞模式如bio等是一个大大的阻碍,而同步计算时长时间耗时的处理
    • 当然最终目的是,对用户或者调用方的及时响应    

    2、数据库怎么优化

    • 存储优化
      • 持久性:主备,避免单点问题
      • 合适的存储引擎选取
      • 合适的raid级别
      • 网络及连接数、编码等参数的设置  
    • 访问优化
      • 访问次数同获取内容量之间的折衷
      • 链接的合理重复利用:常见连接池
      • 读缓存优于读磁盘
      • 建立合理的索引并利用
      • 避免添加列的修改  
    • sql优化
      • 合理利用索引
      • fetch适当的数据:避免全部捞取,占用带宽
      • 排序或者复杂逻辑尽量在程序部分使用
      • 使用执行计划
      • 对慢查询优化
      • 分库分表的使用
      • 缓存的使用:对于非实时性要求特别高或者统计类的数据展示,可以引入缓存
      • nosql的使用:合理的使用
    • 当然DBA的介入非常必要,专业。    
  • 相关阅读:
    浏览器渲染原理
    前端日常工作性能优化条例
    前端的发展历程
    【YOLO-V1】You Only Look Once: Unified, Real-Time Object Detection
    ModuleNotFoundError: No module named 'keras_retinanet.utils.compute_overlap'
    python学习笔记:线性回归
    软件安装笔记5:navicat for mysql及其简单应用
    python学习笔记39:sklearn
    python学习笔记38:matplotlib
    python学习笔记37:pandas
  • 原文地址:https://www.cnblogs.com/leeying/p/3877662.html
Copyright © 2020-2023  润新知