zoukankan      html  css  js  c++  java
  • 性能优化的心得

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

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

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

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

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

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

    现在只要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.向有经验的人请教,能够更快速的解决问题,有经验的人,也许可以给出更多合理的意见

  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/gdnyfcuso/p/8003741.html
Copyright © 2011-2022 走看看