欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

优化原则(持续更新)

程序员文章站 2024-01-01 23:12:34
...

优化原则:

 

1: 在能应付当前性能需求的情况下,不建议进行性能优化。

 

2: 仅仅优化性能瓶颈

 

3: 编码时必须进行压力测试

 

4: 优化时,考虑现实生活中遇到的问题,现实如何处理,代码也如何处理。

 

5: 优化的唯一方法:去掉没有必要的操作 和 高效的算法。可以看到所有的优化方法都离不开这条原则,而最常用、也最容易发现的方案就是去掉没必要的操作。

 

 

代码优化

 代码优化的唯一目的: 减少执行时间。

 两种优化方法: 减少没必要的内存分配;减少没必要的计算。

       当然这两种方法一般都会同时出现,如分配没必要的内存,分配这个操作就是没必要的计算。

 

内存分配:

    最好的效果:一次申请正好足够的内存。不过一般都做不到,只能尽可能。

 

    1:比如Java中的'+'进行字符串连接,不断产生新的char[]数组后又废弃不用。

    2:避免频繁的内存回收,对某些大数据任务可以多分配内存,减少GC的次数。

 

计算:

    计算一般涉及算法(数据结构)和缓存。

    1: 算法(数据结构)当然越快越好,比如:hashSet的搜索效率就比ArrayList高

    2: 不需要重新获取的东西就可以缓存起来,比如:处理过程中的中间结果

    3: 如果某些操作需要创建某些资源,比如网络连接。那么最好不要每次操作都创建一个,而是一个连接进行多次操作。

 

策略优化:

 

  以不同的交互策略来达到用户一致的体验。

  最常用的策略:当用户操作时才进行处理,将集中式处理改为分散式。

 

 

例子1:懒加载

比如一张单据有很多子页签,用户查看时单据仅仅加载单据的数据,而不需要加载子页签的数据。只有用户点击子页签时才加载对应的页签数据。

这样就将集中式的查询分散到用户操作中去,提高用户的体验并减少系统瞬间压力。

 

例子2:

这里借用一下JavaEye中别人讨论过的例子:

   某个系统要求在某个时间将用户积分清零的需求。

   最直接的方案: 定时将系统中所有的用户积分清零。其弊端在于:如果系统用户量特别大,则在一小段时间内用户将不可进行积分操作。

   优化后的策略:用户进行积分操作是分散的,同一时间进行积分操作的压力是很小。因此可以考虑在用户进行积分操作时才考虑是否进行积分清零。

 

 

 

 

 

 

上一篇:

下一篇: