Complexity:一个测量 C 代码复杂性的工具
来源:互联网 发布:ackerman函数 JAVA 编辑:程序博客网 时间:2024/05/17 04:07
http://hao.jobbole.com/complexity/
Complexity:一个测量 C 代码复杂性的工具
本资源由 伯乐在线 - 贺贺 整理,您也想贡献一份力量?欢迎加入我们 »
复杂性测量工具提供几条信息,它们可以:
- 对于不熟悉的代码,可以查找可疑的区域。
- 了解要理解代码需要多少工作量。
- 了解测试代码库需要的工作量。
- 给自己一个提醒。你可以很明显的看出你已经写了什么,但是其他人不能。提示哪些代码可能比较难被人理解是有用的,然后再决定是否需要重新做。
但是为什么需要另一个复杂性分析者?McCabe分析工具已经存在,但是它所做的工作对测定复杂性来说太粗糙了。每一个代码路径都应该被测试,pmccabe程序提供了代码路径的计数。然而,这并不是影响人们理解力的唯一问题。这个项目试图把其它影响人们理解能力的因素考虑进来。
复杂性计算
从根本上讲,这个程序的主要目标是计算没有注解的源码行的数目,乘以每一个层次的逻辑嵌套和分裂比例因子的嵌套因素,这样典型的结果和pmccabe结果分布在相同的范围内。这个恰好大约是20。
示例输出
这是一个自我参照的例子。输出是通过进入复杂源目录,并运行以下命令:
阈值被设为3是因为所有的函数得分都低于默认阈值30。它不是0是因为有太多琐碎的函数在一个短的例子中。
执行结果:
调用的复杂性
计算源代码的复杂性不仅要计数代码路径,还要通过逻辑层次嵌套计算放大的行数。complexity忽略了所有的cpp预处理指令——计算代码显示的复杂性,而不是预处理之后操作代码的复杂性。例如,getchar(3)将会扩展称相当复杂的代码。
本章由AutoGen生成,使用了agtexi-cmd模板和complexity程序的选项描述。
这个软件是在GNU通用公共许可证下发布的。
开发资源
- 用户手册
官方网站:https://www.gnu.org/software/complexity/
开源地址:http://ftp.gnu.org/gnu/complexity/
0 0
- Complexity:一个测量 C 代码复杂性的工具
- 《一个可扩展性较高的测量工具代码》
- WMI via C++: 一个C++风格的复杂性处理实例
- 如何测量C#代码的运行时间
- 如何测量C#代码的运行时间
- 空间复杂性学习笔记(space complexity)
- Iperf: 一个优秀的网络性能测量工具
- Objective-C 中如何测量代码的效率
- 一个简易的打字速度测量----C编写
- 测量web负载的工具
- 简单的测量工具实现
- 测量java代码的执行时间
- 一个代码转换的工具
- Linux下的一个全新的性能测量和调试诊断工具Systemtap
- Linux下的一个全新的性能测量和调试诊断工具Systemtap【2】DTrace
- Linux下的一个全新的性能测量和调试诊断工具Systemtap【3】System
- Linux下的一个全新的性能测量和调试诊断工具Systemtap[1]kprobe
- Linux 下的一个全新的性能测量和调式诊断工具 Systemtap
- 网络接入技术及其特点
- net core中Session的使用
- 56:Longest Valid Parentheses
- linux空间被占满的情况
- WiFi captive portal detection
- Complexity:一个测量 C 代码复杂性的工具
- 嵌入式面试题——ARM面试题(五)
- 友盟推送的使用
- PAT甲级练习1085. Perfect Sequence (25)
- java中的静态代理
- request:fail ssl hand shake error 微信小程序(已解决!!) TLS1.2版本配置
- leetcode 15. 3Sum
- python的基础知识
- Convert Sorted Array to Binary Search Tree