web项目的性能优化原则

优化原则:

 

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

 

2: 仅仅优化性能瓶颈

 

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

 

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

 

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

 

 

代码优化

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

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

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

 

内存分配:

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

 

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

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

 

计算:

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

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

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

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

 

策略优化:

 

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

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

 

 

例子1:懒加载

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

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

 

例子2:

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值