Linux / Arch / Arm
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 7,671 units with 97,052 lines of code in units (33.4% of code).
    • 1 very complex units (380 lines of code)
    • 9 complex units (951 lines of code)
    • 204 medium complex units (11,510 lines of code)
    • 520 simple units (15,925 lines of code)
    • 6,937 very simple units (68,286 lines of code)
<1% | <1% | 11% | 16% | 70%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
c<1% | <1% | 12% | 16% | 69%
h0% | 1% | 0% | 8% | 89%
pl0% | 0% | 0% | 0% | 100%
inl0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
net32% | 0% | 6% | 17% | 43%
mm0% | 4% | 9% | 13% | 71%
mach-omap20% | 2% | 12% | 19% | 65%
nwfpe0% | 4% | 49% | 16% | 29%
mach-pxa0% | 1% | 3% | 11% | 84%
boot0% | 20% | 19% | 0% | 59%
mach-rpc0% | 6% | 21% | 19% | 52%
kernel0% | 0% | 15% | 18% | 65%
mach-omap10% | 0% | 26% | 12% | 60%
vfp0% | 0% | 40% | 19% | 40%
probes0% | 0% | 10% | 5% | 83%
mach-s3c0% | 0% | 6% | 13% | 79%
mach-davinci0% | 0% | 8% | 20% | 70%
mach-orion5x0% | 0% | 9% | 15% | 75%
mach-shmobile0% | 0% | 26% | 16% | 56%
mach-sunxi0% | 0% | 24% | 19% | 55%
mach-imx0% | 0% | 5% | 18% | 75%
common0% | 0% | 6% | 25% | 68%
mach-at910% | 0% | 18% | 29% | 51%
mach-mmp0% | 0% | 11% | 23% | 64%
xen0% | 0% | 22% | 19% | 57%
mach-sa11000% | 0% | 7% | 6% | 86%
mach-mxs0% | 0% | 47% | 13% | 38%
mach-exynos0% | 0% | 9% | 12% | 77%
plat-omap0% | 0% | 11% | 43% | 44%
mach-vt85000% | 0% | 83% | 0% | 16%
mach-hisi0% | 0% | 14% | 25% | 60%
vdso0% | 0% | 54% | 0% | 45%
mach-bcm0% | 0% | 8% | 14% | 76%
mach-mvebu0% | 0% | 4% | 17% | 77%
crypto0% | 0% | 1% | 14% | 83%
mach-ep93xx0% | 0% | 4% | 9% | 86%
mach-tegra0% | 0% | 8% | 31% | 60%
plat-orion0% | 0% | 4% | 11% | 83%
mach-rockchip0% | 0% | 9% | 39% | 51%
mach-highbank0% | 0% | 21% | 0% | 78%
mach-iop32x0% | 0% | 3% | 24% | 71%
include0% | 0% | 0% | 10% | 89%
mach-footbridge0% | 0% | 0% | 22% | 77%
mach-meson0% | 0% | 0% | 80% | 19%
mach-qcom0% | 0% | 0% | 56% | 43%
mach-vexpress0% | 0% | 0% | 23% | 76%
mach-ixp4xx0% | 0% | 0% | 10% | 89%
mach-actions0% | 0% | 0% | 85% | 14%
mach-lpc32xx0% | 0% | 0% | 40% | 59%
mach-socfpga0% | 0% | 0% | 16% | 83%
plat-pxa0% | 0% | 0% | 28% | 71%
lib0% | 0% | 0% | 37% | 62%
mach-spear0% | 0% | 0% | 9% | 90%
mach-realview0% | 0% | 0% | 90% | 9%
mach-zynq0% | 0% | 0% | 13% | 86%
mach-ux5000% | 0% | 0% | 16% | 83%
mach-mediatek0% | 0% | 0% | 50% | 49%
mach-dove0% | 0% | 0% | 6% | 93%
mach-sti0% | 0% | 0% | 80% | 19%
mach-integrator0% | 0% | 0% | 21% | 78%
mach-mv78xx00% | 0% | 0% | 5% | 94%
mach-cns3xxx0% | 0% | 0% | 0% | 100%
mach-s5pv2100% | 0% | 0% | 0% | 100%
mach-milbeaut0% | 0% | 0% | 0% | 100%
plat-versatile0% | 0% | 0% | 0% | 100%
mach-keystone0% | 0% | 0% | 0% | 100%
mach-versatile0% | 0% | 0% | 0% | 100%
mach-berlin0% | 0% | 0% | 0% | 100%
mach-axxia0% | 0% | 0% | 0% | 100%
mach-npcm0% | 0% | 0% | 0% | 100%
mach-mstar0% | 0% | 0% | 0% | 100%
mach-alpine0% | 0% | 0% | 0% | 100%
mach-oxnas0% | 0% | 0% | 0% | 100%
mach-aspeed0% | 0% | 0% | 0% | 100%
mach-clps711x0% | 0% | 0% | 0% | 100%
mach-artpec0% | 0% | 0% | 0% | 100%
mach-realtek0% | 0% | 0% | 0% | 100%
mach-gemini0% | 0% | 0% | 0% | 100%
mach-nomadik0% | 0% | 0% | 0% | 100%
mach-nspire0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
380 166 2
140 49 1
165 47 1
154 42 3
150 36 1
68 33 1
58 27 3
63 26 1
68 26 2
85 26 2
68 25 1
93 25 3
132 24 1
67 23 4
76 23 3
62 23 2
94 23 2
51 23 1
92 23 1
42 22 1
89 22 3
88 22 1
103 22 2
60 21 1
71 21 3
95 21 2
83 21 1
91 21 5
93 21 4
52 21 2
50 20 3
63 20 2
56 20 4
56 20 4
57 20 4
56 20 4
56 19 1
63 19 3
48 19 1
82 19 1
78 19 1
57 19 3
91 19 1
49 18 2
50 18 2
59 18 1
60 18 1
43 18 4
66 17 1
49 17 4