11个源码优化和分析的Java工具

标签: 源码 优化 分析 | 发表时间:2011-08-01 22:08 | 作者:程序员 蒋冰
出处:http://www.jobbole.com/blog.php
  Venkatt Guhesan 分享了一些Java工具,帮助你优化代码以及检查源代码中的潜在问题。

  1. PMD from http://pmd.sourceforge.net/

11个源码优化和分析的Java工具

  PMD能够扫描Java 源代码,查找类似以下的潜在问题:
  • 可能的bug——try/catch/finally/switch语句中返回空值。
  • 死代码——未使用的局部变量、参数、私有方法。
  • 不理想的代码——使用String/StringBuffer。
  • 过于复杂的表达式——没有必要使用if语句、while循环可以代替for循环。
  • 重复代码——复制/粘贴的代码引发的bug。
  PMD集成了JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator,以及 Emacs。

  2. FindBug from http://findbugs.sourceforge.net

11个源码优化和分析的Java工具

  FindBug是一个使用静态方法来查找Java代码漏洞的程序。

  3. Clover from http://www.cenqua.com/clover/

  这个插件允许你在不离开IDE的环境条件下来衡量和检测覆盖效果。该插件通过使用Apache Ant、Maven来无缝集成其它项目,可以通过命令行界面和API系统轻松集成到传统的构建系统中。

  该插件的特性:
  • 支持快速、准确、可配置的方法,语句等。
  • 支持丰富的报告格式:HTML、PDF、XML、以及Swing GUI。
  • 精确控制源代码级别的过滤。
  • 支持代码覆盖以及其它指标的图表。
  • 完全兼容JUnit 3.x& 4.x, TestNG, JTiger以及其它的测试框架。
  4. Macker from http://innig.net/macker/

  Macker是一个适用于Java开发人员用来检查架构规则的工具。你可以定制一个适合特定项目架构的规则文件,也可以为您的代码撰写通用的规则说明。

  5. EMMA from http://emma.sourceforge.net/
  • EMMA支持的覆盖类型:方法、类等。
  • 输出报告的格式为:文本、HTML、XML。
  • 输出报告可以高亮显示某些项目。
  • EMMA不需要访问源代码,可以在输入类中减少调试的信息。
  6. XRadar from http://xradar.sourceforge.net/

  XRadar是一个开放的、为代码生成可扩展报告的工具。目前支持基于Java的所有系统。批量处理的框架可以用来生成HTML/SVG系统的报告。Xradar可以估量代码的大小、复杂性以及代码的重复性、依赖性等。

  7. Hammurapi from http://www.hammurapi.com

  Hammurapi是一款执行Java程序代码的自动检测工具。提供的实例中含有282条Hammurapi代码规则,提供了120多个Java类,这款所谓的检测工具,可以从三个级别来检测代码是否违背了编码标准。

  8. Relief from http://www.workingfrog.org/

  Relif是一款设计工具,为Java项目提供了崭新的面貌。我们可以充分发挥自己的能力来处理真实的实例——通过检测大小、形状、关系等来简化处理过程。

  9. Hudson from http://hudson-ci.org/

  Hudson 是一个持续集成工具,使用Java编写,运行在servlet容器中,比如Apache Tomcat或者或GlassFish应用服务器。它支持SCM工具,包括CVS、Subversion、Git和ClearCase。它可以执行 Apache Ant、基于Apache Maven的项目、以及任意的shell脚本和 Windows批处理命令。

  10. Cobertura fromhttp://cobertura.sourceforge.net/

  Cobertura是一个免费的基于jcoverage的Java工具,用于计算代码被测试访问的百分比,它可以被用来确定Java程序中的缺少部分的测试覆盖率。

  11. SonarSource from http://www.sonarsource.org/

  Sonar是一个管理代码质量的开放平台。因此,它涵盖了代码质量的7个方面:架构与设计、重复、单元测试、复杂性、潜在错误、编码规则、评论。


  原文:Venkatt Guhesan
  译文:iteye
  -------------------------------------------------------------------
  你可能对以下文章也感兴趣

  陈皓:你确信你了解时间吗?
  理解Linux系统负荷
  IMO2011趣题:总存在一条将会遍历所有点的直线
  程序员与非程序员的思维差异
  程序员越老越优秀吗?
         
  -------------------------------------------------------------------

 

相关 [源码 优化 分析] 推荐:

11个源码优化和分析的Java工具

- 山河之外 - 互联网的那点事...
enkatt Guhesan 分享了一些Java工具,帮助你优化代码以及检查源代码中的潜在问题. PMD能够扫描Java 源代码,查找类似以下的潜在问题:. 可能的bug——try/catch/finally/switch语句中返回空值. 死代码——未使用的局部变量、参数、私有方法. 不理想的代码——使用String/StringBuffer.

Tcmalloc源码分析(总括)

- cpy - 弯曲评论
Tcmalloc通过preload或者直接动态链接的方式对malloc等内存分配和释放函数进行截获并提供服务. Tcmalloc提供接口主要涵盖malloc.h的接口. 下面我将通过内存操作的基本流程,从分配开始到释放简单的分析tcmalloc的一些内部实现. 在tcmalloc中,内存分配malloc的入口为tc_malloc,new的入口为tc_new,相应的realloc,calloc,memalign,valloc等也有相应的入口.

Redis源码分析-内存分配

- gOODiDEA - NoSQLFan
本文转载自Day Day Up博客,文章对Redis的内存分配封装zmalloc库进行了分析,描述了Redis在内存分配和使用统计方面的各种细节和技巧. 原文链接:blog.ddup.us. Redis中到处都会进行内存分配操作. 为了屏蔽不同平台之间的差异,以及统计内存占用量等,Redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数,位于zmalloc.h,zmalloc.c文中.

Redis源码分析系列文章

- gOODiDEA - NoSQLFan
Redis 的源码只有2万来行,个人觉得是一个非常合适的学习Unix 环境下C语言编程的实例教材. 而读源码,也对了解Redis内部结构很有帮助. 下面推荐的几篇文章,来自阿里巴巴云计算运维部的 hoterran 同学的个人博客,分别对Redis几个重要流程的源码进行了分析研究,对了解Redis内部结构很有帮助.

nginx源码分析--GDB调试

- - CSDN博客架构设计推荐文章
利用gdb[i]调试nginx[ii]和利用gdb调试其它程序没有两样,不过nginx可以是daemon程序,也可以以多进程运行,因此利用gdb调试和平常会有些许不一样. 当然,我们可以选择将nginx设置为非daemon模式并以单进程运行,而这需做如下设置即可:. master_process off; 这是第一种情况:.

mysql优化之profile查询分析

- - 数据库 - ITeye博客
通过慢日志查询可以知道哪些SQL语句执行效率低下,通过explain我们可以得知SQL语句的具体执行情况,索引使用等,还可以结合show命令查看执行状态. 如果觉得explain的信息不够详细,可以同通过 profiling命令得到更准确的SQL执行消耗系统资源的信息. 这里还需要注意一点就是,需要安装profile模块才能实现.

Go程序调试、分析与优化

- - Tony Bai
Brad Fitzpatrick在 YAPC Asia 2015(Yet Another Perl Conference)上做了一次技术分享,题为:" Go Debugging, Profiling, and Optimization". 个人感觉这篇分享中价值最大的是BradFitz现场演示的一个有关如果对 Go程序进行调试、分析和优化的 Demo,Brad将demo上传到了他个人在github.com的 repo中,但不知为何,repo中的代码似乎与repo里talk.md中的说明不甚一致(btw,我并没有看video).

如何高效快速地优化MySQL、SQL语句(附源码)

- - 运维派
韩锋,宜信技术研发中心数据库架构师. 精通多种关系型数据库,曾任职于当当网、TOM在线等公司,曾任多家公司首席DBA、数据库架构师等职,多年一线数据库架构、设计、开发经验. 著有《SQL优化最佳实践》一书. 优化SQL,是DBA常见的工作之一. 如何高效、快速地优化一条语句,是每个DBA经常要面对的一个问题.

jquery源码分析之扩展函数 extend, $.extend

- - CSDN博客推荐文章
声明:本文为 斯人原创,全部为作者一一分析得之,有不对的地方望赐教. 本文地址: http://imsiren.com/archives/525. 好久没写jquery源码的内容了. jquery的发展有很大因素是因为它非常易于扩展,究其原因就得益于 extend函数. 该函数是一个扩展函数…说是一个扩展函数,其实就是一个浅拷贝和深拷贝的函数而已.