• 性能优化的心得


    跟同事交流,之前上线的系统一两年之后,数据有两三千万

    系统,没有办法很好的应对这么多的数据

    这有两方面原因,一个是设计的时候没有怎么考虑数据量的问题

    还有一个就是写代码的时候,并没有注意数据量的问题

    不去关注数据量的问题,这可能是程序员自己的意识,还有可能是客户自以为的不用关注

    客户说,我们的数据没有多少,你不用考虑那么多,以后这个系统用不用都还不好说

    现在只要100万铺底数据,5000条交易数据能跑出来就行

    听起来,100万铺底数据,5000条也不多,应该没有那么难吧

    仔细分析客户说的就跟没有说一样

    因为一开始铺底数据也不会有100万,也不会恰好100万里面正好有五千条让我们处理

    100万 5000条数据只是一个点,过完这个点怎么办,系统真的就死掉了?

    除了设计上性能瓶颈不好解决,写代码的时候多思考一些问题,还是能解决一些性能问题的

    以下就是自己最近优化客户的销项报表的一个心得分享

    1. 首先优化什么时候最合适

    这个问题首先我们应该培养自己的优化意思,写代码的时候,就去注意这方面的问题。

    另一个就是,优先保证客户的需求是没有问题的,这个时候有性能问题的再去优化。

    如果没有考虑功能是否开发完成就急着去优化,可能刚优化完,测出来了一些bug,又需要修改,当修改完之后,发现之前优化好的,需要再去优化,如此反复有可能会浪费很多必要的时间

    1. 优化到什么程度才算结束

    1.优化到客户满意,但性能这个问题,客户的要求,我们也不一定能做的到

    2.充分发挥计算机的计算能力,让CPU和内存的利用率达到极致,降低与IO,数据库,其他系统的交互次数

    1. 优化过程中要从哪些方面去考虑
      1. 利用计算机的多线程
      2. 不需要写文件的就不要写
      3. 只要内存不死,能在内存里面缓存的数据,就一次性放到内存里面,不要频繁访问数据库
      4. 不要在循环里面,操作数据库,除非数量大分批处理,需要释放内存的时候
      5. 减少不必要的代码,用更高效的算法
    2. 要借助性能测试工具,定量去分析

    1.用的比较多的是DotTreace,能够比较好分析出来程序的性能瓶颈在哪里,可以看到每个方法具体执行时间,能够有方向的去优化

    1. 要多问问有经验的人,给些意见

    1.向有经验的人请教,能够更快速的解决问题,有经验的人,也许可以给出更多合理的意见

  • 相关阅读:
    Prometheus组件
    任务和实例
    初识Prometheus
    Prometheus简介【转】
    MySQL定时备份数据库(全库备份)
    lvextend 扩容后, df -h 看到的却还是原来的大小
    修复VSAN无法看到主机磁盘
    RocketMQ 单机部署(单master模式)
    强制找回GitLab管理员账户密码的方法
    php iis 上传图片后401无法访问
  • 原文地址:https://www.cnblogs.com/gdnyfcuso/p/8003741.html
Copyright © 2020-2023  润新知