源伞科技Pinpoint和sonarQube对比

测试背景

使用工具:
  • 源伞科技Pinpoint
  • Sonarqube
测试项目:
  • 本地测试框架项目两个文件
    文件1:AsyncHttpClientUtil.java
    文件2:FileUtil.java

测试结果汇总

数据统计:
  • 源伞科技Pinpoint结果:

    • 文件1:

      • 严重:14
      • 中等:2
    • 文件2:
      • 严重:8
      • 中等:1
  • SonarQube结果:
    • 文件1:

      • 严重:13
    • 文件2:
      • 严重:18
      • 一般:4
      • 建议:1

测试细节:

  • 1、数量:

    • 从数量看,Pinpoint较SonarQube结果数量少。
  • 2、安全隐患:
    • SonarQube报告包括

      • 5处空指针异常,
      • 4处无引用方法,
      • 两处““InterruptedException” should not be ignored”问题,
      • 1处注释问题,1处“Utility classes should not have public constructors”问题。
      • 13处用日志记录代替标准输出问题
      • 1处导致资源泄漏问题
      • 1处字符串文本不应重复
      • 1处 Try-with-resources should be used
      • 1处 工具类不应该有公共构造函数,工具类不宜实例化,且应有一个私有构造方法。
      • 2处 可合并的“if”语句应该合并。
    • Pinpoint报告

      • 9处空指针,
      • 5处返回null给函数调用者,
      • 2处函数 instanceof<java.lang.Exception> 的返回值没有被检查
      • 1处创建了一个java.io.BufferedReader类的对象
      • 2处if else分支问题
      • 1处导致资源泄漏问题
      • 2处 在util.FileUtil.readerFile(String)中找到对默认编码的依赖:new java.io.InputStreamReader(InputStream)
      • 1处 util.FileUtil.readerFile(String)在循环中使用+连接字符串

主要结论:

  • 从报告总量上SonarQube比Pinpoint数量多,但是无效问题居多,多出的问题一般是代码规范问题。(本次两款软件均采用默认级别扫描。 )
  • SonarQube报告的4处无引用方法、2处注释问题、13处打印输出问题、2处合并if问题,并不影响程序执行,而Pinpoint每个报告都是需要去查看修改。
  • Pinpoint 规则里可以判断程序中出现的条件判断语句问题,发现该问题2处。而且支持跨函数和跨文件扫描,发现该问题一处。(这两种问题sonar扫描不到)
  • Pinpoint和SonarQube关注点有区别,sonar关注于代码规范,Pinpoint更关注与代码错误,且有效问题较高。
  • sonar开源支持语言比PinPoint多,规则也可以选择。
  • 个人观点:sonar适合开发日常自检,Pinpoint适合验收检测。

相关数据支撑资料已发布在在csdn

伞源科技Pinpoint和sonarQube对比的更多相关文章

  1. 【转】HashMap,ArrayMap,SparseArray源码分析及性能对比

    HashMap,ArrayMap,SparseArray源码分析及性能对比 jjlanbupt 关注 2016.06.03 20:19* 字数 2165 阅读 7967评论 13喜欢 43 Array ...

  2. Collections.synchronizedList 、CopyOnWriteArrayList、Vector介绍、源码浅析与性能对比

    ## ArrayList线程安全问题 众所周知,`ArrayList`不是线程安全的,在并发场景使用`ArrayList`可能会导致add内容为null,迭代时并发修改list内容抛`Concurre ...

  3. HashMap源码详解与对比

    前几天工作忙得焦头烂额时,同事问了一下关于Map的特性,刹那间懵了一下,紧接着就想起来了一些关于Map的一些知识,因为只要涉及到Collection集合类时,就会谈及Map类,因此理解好Map相关的知 ...

  4. DownloadProvider源码解析——与Volley对比

    1.AndroidHttpClient的创建 DownloadManager: 在DownloadThread的run方法里 public void run() { Process.setThread ...

  5. sonarQube本机扫描C#项目

    因项目需要,需要使用sonarQube对代码进行扫描并查看,因对sonarQube不熟悉,所以先在本机进行查看. 参考了张老师的博客:http://www.cnblogs.com/danzhang/p ...

  6. @Controller和@RestController源码解析

    2018年不知不觉已经走到了尾声,你还在为分不清@Controller和@Restcontroller而烦恼吗?这篇博文从源码层面分析这两个注解,值得一读. 首先贴一张源码的图,对比一下,左边是@Co ...

  7. Java源码安全审查

    最近业务需要出一份Java Web应用源码安全审查报告, 对比了市面上数种工具及其分析结果, 基于结果总结了一份规则库. 本文目录结构如下: 检测工具 FindSecurityBugs 基于class ...

  8. sonarQube安装及本机扫描C#项目

    因项目需要,需要使用sonarQube对代码进行扫描并查看,因对sonarQube不熟悉,所以先在本机搭建测试环境. 参考了张老师的博客:http://www.cnblogs.com/danzhang ...

  9. 三星语音AI助理背后的华人身影—73岁科技人三度创业成功(孙子兵法:道、天、地、将、法)

    我绝对不当老二,也不当老大,我要当霸主!”说这句话的是富迪科技董事长黄炎松.他还把“独霸”当作公司愿景宣言,大剌剌的放在美国总公司进门最显眼的墙上.   集微网消息,据台湾商业周刊报道,黄炎松,是台湾 ...

  10. synchronized的jvm源码分析聊锁的意义

    上篇写完了ReentrantLock源码实现,从我们的角度分析设计锁,在对比大神的实现,顺道拍了一波道哥的马屁,虽然他看不到,哈哈.这一篇我们来聊一聊synchronized的源码实现,并对比reen ...

随机推荐

  1. 洛谷 P2971 [USACO10HOL] Cow Politics G 题解

    怎么没有树上启发式合并的题解呢?我来发一篇吧! 简化题意 给定一棵 \(n\) 个点的树,每个点属于 \(k\) 种颜色之一(每种颜色至少有 2 个点).求每种颜色中,任意两点间的最大距离. 核心思想 ...

  2. 在Windows下使用make命令

    1.下载mingw https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/ 2.安装 运行 mingw-get-set ...

  3. 如何用Renix实现网络测试自动化: 从配置分离到多厂商设备支持

    引言 : 您是否也面临这些痛点? 同样的测试脚本在类似的场景不能重复利用,为维护大量脚本而头疼: 换台设备就得重新配置适配脚本: 脚本代码逻辑复杂,代码行数太多,易读性较差. 本篇文章主要介绍如何使用 ...

  4. 从文本到二进制:HTTP/2不止于性能,更是对HTTP/1核心语义的传承与革新

    云原生计算基金会(Cloud Native Computing Foundation,CNCF)是一个非盈利的开源组织,专注于推动云原生计算的发展和标准化.而gRPC(Google Remote Pr ...

  5. Kafka配置SASL_SSL认证传输加密

    本文分享自天翼云开发者社区<Kafka配置SASL_SSL认证传输加密>,作者:王****帅 一.SSL证书配置 1.生成证书 如我输入命令如下:依次是 密码-重输密码-名与姓-组织单位- ...

  6. 直流电机控制(PWM)+普中51单片机+江科大自化协

    1 实验现象 2 实验原理 通过按键来控制PWM占空比实现对直流电机的调速,数码管则显示当前速度挡位信息. (1)直流电机的控制是通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越 ...

  7. 李彦宏下“英雄贴” 召唤AI独角兽

    "比互联网更大的机会",这是站在AI爆发的十字路口时,所有人的一个共识--因为AI对社会的改变,远比互联网更深刻. 但是,这些机会如何变为现实,AI又如何更加深刻地改变社会?显然不 ...

  8. AGC自动增益控制电路

    前言 本文章作为笔记分享出来,原内容出自: [AGC自动增益控制电路原理] AGC十分适用于单片机的ADC信号采样,可以限制输入信号的幅度变化,使得当输入信号变化的时候,后面信号处理的部分是不受影响. ...

  9. 为AI注入灵魂:一种面向人机黑箱的元人文治理新范

    为AI注入灵魂:一种面向人机黑箱的元人文治理新范式 在人工智能治理领域,我们正面临一个根本性的范式转移:挑战从纯粹的"技术黑箱"转向更为复杂的 "人机混合黑箱" ...

  10. systolic array架构设计综述

    systolic array(SA)即脉动阵列.对于大规模的乘累加运算,SA将单个乘累加单元和数据流控制部件组成的process element(PE)进一步组织成大规模阵列,数据在PE之间打拍脉动传 ...