首页 > 其他 > 详细

性能调优从哪里下手

时间:2014-04-14 15:32:54      阅读:569      评论:0      收藏:0      [点我收藏+]

      说到性能调优,给人的感觉往往都是修炼有成的专家干得事了,对于我们这些菜鸟还是想也不要想了,做好分内事,不出现纰漏就OK了。对于这种观点我表示严肃的否决!那想学习性能调优的童鞋应该从哪里下手呢?接下来就让我们来谈谈关于性能调优你所忽视的一些常识。

  一、代码;
前文讲过“华为Java编程军规,每季度代码验收标准”这个标准是衡量代码本身的缺陷,也是衡量一个研发人员本身的价值。代码是性能调优中的一粒分子,分子虽小但经过上亿次的分裂也会变成黑洞,所以代码本身的缺陷也是我们性能调优的主因之一。

bubuko.com,布布扣
军规一:【避免在程序中使用魔鬼数字,必须用有意义的常量来标识。】

军规二:【明确方法的功能,一个方法仅完成一个功能。】

军规三:【方法参数不能超过5个】

军规四:【方法调用尽量不要返回null,取而代之以抛出异常,或是返回特例对象(SPECIAL CASE object,SPECIAL CASE PATTERN);对于以集合或数组类型作为返回值的方法,取而代之以空集合或0长度数组。】

军规五:【在进行数据库操作或IO操作时,必须确保资源在使用完毕后得到释放,并且必须确保释放操作在finally中进行。】

军规六:【异常捕获不要直接catch (Exception ex) ,应该把异常细分处理。】

军规七:【对于if ? else if ?(后续可能有多个else if …)这种类型的条件判断,最后必须包含一个else分支,避免出现分支遗漏造成错误;每个switch-case语句都必须保证有default,避免出现分支遗漏,造成错误。】

军规八:【覆写对象的equals()方法时必须同时覆写hashCode()方法。】

军规九:【禁止循环中创建新线程,尽量使用线程池。】

军规十:【在进行精确计算时(例如:货币计算)避免使用float和double,浮点数计算都是不精确的,必须使用BigDecimal或将浮点数运算转换为整型运算。】
bubuko.com,布布扣


注:“华为Java编程军规,每季度代码验收标准”详见:http://www.cnblogs.com/Javame/p/3513670.html

  二、基准;
基准环境,基准负载和基准指标,这是前提也是标准更是依据。没有人能保证每次执行的指标就是真实有效的,今天提交个版本明天升级个环境这是我们不能容忍的。怎么才能基准?什么又叫基准?正式的标准的稳定版本就是基准。也只有基准了,我们才能发现问题。

  三、硬件;
硬件环境的调整:主要是对系统运行的硬件环境进行调整,包括改变系统运行的服务器、主机设备环境(改用具有更高性能的机器,或是调整某些服务器的物理内存总量,CPU数量等),调整网络环境(更换快速的网络设备,或是采用更高带宽的组网技术)等。

注:“工作经验总结:百万数据引发的性能瓶颈问题”http://www.cnblogs.com/Javame/p/3510641.html

  四、系统;
系统设置的调整:主要是对系统运行的基础平台设置进行调整,例如,根据应用需要调整UNIX系统的核心参数,调整数据库的内存池大小,调整应用服务器使用的内存大小,或是采用更高版本的JVM环境等;

注:推荐常有性能测试工具

      性能测试工具:LR、kylinPET

      系统监控工具:nmon 或Linux(top sar)等自带命令

      强烈推荐:Spotlight.On.Oracle 非常不错的工具,谁用谁知道! ^^

  五、软件;
应用框架的调整:主要是对应用实现本身进行调整,包括选用新的架构、采用新的数据访问或是修改业务逻辑的实现方式等。

注:说到架构我现在正在研究阿里巴巴的Dubbo,有兴趣的朋友可以一起探讨探讨。

bubuko.com,布布扣
“通过dubbo暴露接口调用方法,及基于zookeeper的dubbo涉及配置文件”http://www.cnblogs.com/Javame/p/3645481.html

“基于ZooKeeper的Dubbo注册中心”http://www.cnblogs.com/Javame/p/3632708.html
“最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨”http://www.cnblogs.com/Javame/p/3632473.html

bubuko.com,布布扣

  简述以上五点,你可以循序渐进依步调优,也可以着重调优,但有一点你却要牢记,那就是软件工程的概论,有一才有二,有因才有果,到头来千万不要拣了芝麻丢了西瓜。

 

  吐槽:南京工资低房价高,像我们这些高技术想要有活路,还是要创业。

 /**

   * @author wonter  

   * <b>描述:</b> 敏捷测试团队,不再仅仅是在coding之后。而是和研发人员贯穿在需求分析、规格说明、自动化单元测试、自动化验收测试、静态代码分析、技术债等环节中。所以敏捷项目必定在将来效率的趋势    * 下成为主流。<br>

   * <b>博客:</b> http://www.cnblogs.com/javame <br>

   * <b>邮件:</b> yiyu1@163.com <br>

性能调优从哪里下手,布布扣,bubuko.com

性能调优从哪里下手

原文:http://www.cnblogs.com/Javame/p/3663805.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!