Linux / Fs
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 25,209 units with 614,315 lines of code in units (58.8% of code).
    • 84 very complex units (25,728 lines of code)
    • 413 complex units (57,482 lines of code)
    • 2,330 medium complex units (160,272 lines of code)
    • 4,156 simple units (147,082 lines of code)
    • 18,226 very simple units (223,751 lines of code)
4% | 9% | 26% | 23% | 36%
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
c4% | 9% | 26% | 24% | 35%
h0% | 0% | 1% | 4% | 93%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
ntfs32% | 26% | 25% | 8% | 7%
ntfs318% | 15% | 33% | 17% | 14%
btrfs3% | 13% | 31% | 23% | 28%
ext47% | 10% | 31% | 22% | 27%
f2fs6% | 10% | 27% | 22% | 32%
ksmbd7% | 5% | 26% | 24% | 35%
ceph6% | 16% | 23% | 24% | 29%
jbd215% | 0% | 22% | 22% | 39%
reiserfs4% | 14% | 28% | 24% | 28%
ROOT1% | 7% | 21% | 26% | 43%
ubifs2% | 11% | 32% | 25% | 27%
ocfs21% | 7% | 26% | 27% | 37%
cifs4% | 8% | 27% | 25% | 33%
nfs1% | 2% | 13% | 23% | 59%
fat8% | 13% | 18% | 23% | 35%
ufs12% | 0% | 33% | 16% | 37%
jffs24% | 11% | 36% | 21% | 25%
udf6% | 14% | 34% | 22% | 21%
overlayfs6% | 2% | 24% | 27% | 39%
ext28% | 12% | 25% | 19% | 33%
afs2% | 6% | 25% | 20% | 44%
jfs2% | 15% | 33% | 25% | 22%
isofs13% | 28% | 27% | 12% | 17%
orangefs4% | 5% | 27% | 26% | 36%
hpfs5% | 23% | 30% | 22% | 18%
gfs21% | 7% | 25% | 27% | 38%
unicode0% | 29% | 38% | 13% | 19%
hfsplus0% | 12% | 33% | 29% | 24%
dlm0% | 5% | 21% | 23% | 49%
squashfs0% | 22% | 20% | 24% | 31%
hfs0% | 11% | 29% | 30% | 27%
fuse0% | 3% | 19% | 25% | 50%
exfat0% | 6% | 34% | 25% | 33%
nilfs20% | 1% | 21% | 27% | 48%
ecryptfs0% | 5% | 14% | 28% | 51%
9p0% | 9% | 26% | 17% | 47%
nfsd0% | 2% | 12% | 21% | 62%
minix0% | 12% | 13% | 20% | 53%
affs0% | 24% | 43% | 7% | 25%
erofs0% | 3% | 29% | 27% | 39%
qnx60% | 25% | 17% | 6% | 51%
notify0% | 4% | 21% | 26% | 47%
quota0% | 3% | 26% | 31% | 38%
autofs0% | 7% | 23% | 23% | 45%
pstore0% | 4% | 22% | 26% | 46%
bfs0% | 18% | 0% | 42% | 38%
iomap0% | 8% | 15% | 43% | 31%
coda0% | 4% | 14% | 22% | 57%
hostfs0% | 7% | 9% | 20% | 61%
proc0% | 0% | 19% | 25% | 54%
cachefiles0% | 0% | 35% | 22% | 41%
crypto0% | 0% | 21% | 25% | 52%
configfs0% | 0% | 23% | 19% | 57%
vboxsf0% | 0% | 25% | 25% | 48%
zonefs0% | 0% | 30% | 31% | 38%
netfs0% | 0% | 44% | 13% | 42%
sysv0% | 0% | 17% | 32% | 49%
verity0% | 0% | 29% | 30% | 40%
omfs0% | 0% | 27% | 33% | 39%
kernfs0% | 0% | 17% | 23% | 58%
fscache0% | 0% | 17% | 15% | 66%
nls0% | 0% | 10% | 15% | 73%
cramfs0% | 0% | 40% | 20% | 39%
romfs0% | 0% | 31% | 17% | 51%
sysfs0% | 0% | 14% | 27% | 57%
efs0% | 0% | 30% | 40% | 29%
hugetlbfs0% | 0% | 19% | 34% | 45%
debugfs0% | 0% | 12% | 12% | 75%
freevxfs0% | 0% | 43% | 19% | 36%
adfs0% | 0% | 6% | 30% | 62%
devpts0% | 0% | 33% | 0% | 66%
openpromfs0% | 0% | 25% | 27% | 46%
exportfs0% | 0% | 34% | 0% | 65%
nfs_common0% | 0% | 24% | 56% | 19%
tracefs0% | 0% | 18% | 20% | 61%
lockd0% | 0% | 0% | 18% | 81%
efivarfs0% | 0% | 0% | 61% | 38%
qnx40% | 0% | 0% | 56% | 43%
xfs0% | 0% | 0% | 9% | 90%
ramfs0% | 0% | 0% | 31% | 68%
smbfs_common0% | 0% | 0% | 0% | 100%
befs0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
1038 246 2
665 215 3
951 204 2
701 177 1
541 167 8
556 167 2
439 124 1
456 122 3
562 112 4
428 105 5
351 103 3
357 102 2
311 89 9
336 88 1
409 87 3
505 87 1
278 86 2
432 86 4
452 85 3
253 84 2
392 81 1
337 78 2
242 78 4
315 77 2
81 76 1
260 75 7
346 74 1
308 73 2
366 73 6
269 72 4
310 72 1
226 72 4
378 71 3
494 71 1
268 70 4
231 69 6
179 68 6
330 68 1
254 66 5
223 65 3
322 65 4
316 65 4
337 64 3
313 64 1
368 64 4
245 62 6
140 62 3
302 62 2
252 62 1
214 61 6