File Complexity Overall
  • There are 195 files with units, with 25,866 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 2 complex files (McCabe index sum 126-250; 1,839 lines of code)
    • 24 medium complex files (McCabe index sum 51-125; 10,192 lines of code)
    • 15 slightly complex files (McCabe index sum 26-50; 3,774 lines of code)
    • 154 simple files (McCabe index sum 1-25; 10,061 lines of code)
  • 10 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 7% | 39% | 14% | 38%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
java0% | 7% | 39% | 14% | 38%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
src0% | 7% | 39% | 14% | 38%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
HeaderPartition.java
in src/main/java/com/netflix/imflibrary/st0377
1123 50 233 21 90
IMFCompositionPlaylist.java
in src/main/java/com/netflix/imflibrary/st2067_2
716 54 127 18 10
DOMNodeObjectModel.java
in src/main/java/com/netflix/imflibrary/utils
580 37 125 22 14
IMFApp5ConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
517 6 114 22 42
J2KHeaderParameters.java
in src/main/java/com/netflix/imflibrary
299 13 104 35 38
IMFConstraints.java
in src/main/java/com/netflix/imflibrary
556 12 95 17 55
JPEG2000.java
in src/main/java/com/netflix/imflibrary
143 5 92 64 35
IMFTrackFileReader.java
in src/main/java/com/netflix/imflibrary/app
579 28 91 16 16
IMPBuilder.java
in src/main/java/com/netflix/imflibrary/writerTools
757 22 91 12 19
StructuralMetadata.java
in src/main/java/com/netflix/imflibrary/st0377/header
982 9 85 9 55
MXFPropertyPopulator.java
in src/main/java/com/netflix/imflibrary
399 18 83 21 44
AssetMap.java
in src/main/java/com/netflix/imflibrary/st0429_9
498 24 77 15 14
IMFApp2E5EDConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
395 3 75 19 55
IMPAssembler.java
in src/main/java/com/netflix/imflibrary/writerTools
424 44 71 17 27
IMFApp2E2021ConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
400 3 69 17 53
IMFMGASADMConstraintsChecker.java
in src/main/java/com/netflix/imflibrary/st2067_203
262 2 68 26 41
Composition.java
in src/main/java/com/netflix/imflibrary/st2067_2
349 24 67 19 14
OutputProfileList.java
in src/main/java/com/netflix/imflibrary/st2067_100
381 16 66 17 18
MGASADMTrackFileConstraints.java
in src/main/java/com/netflix/imflibrary/st2067_203
297 3 66 22 59
IABTrackFileConstraints.java
in src/main/java/com/netflix/imflibrary/st2067_201
292 7 65 22 50
PartitionPack.java
in src/main/java/com/netflix/imflibrary/st0377
331 37 64 19 11
IMPValidator.java
in src/main/java/com/netflix/imflibrary/RESTfulInterfaces
354 9 63 18 20
IMFCPLValidator.java
in src/main/java/com/netflix/imflibrary/validation
392 9 61 16 25
MXFOperationalPattern1A.java
in src/main/java/com/netflix/imflibrary
251 6 56 22 45
IMPFixer.java
in src/main/java/com/netflix/imflibrary/app
327 6 55 17 23
PackingList.java
in src/main/java/com/netflix/imflibrary/st0429_8
427 23 54 13 14
OutputProfileListModel_st2067_100_2014.java
in src/main/java/com/netflix/imflibrary/st2067_100
212 9 46 22 8
IMFCompositionPlaylistUtils.java
in src/main/java/com/netflix/imflibrary/utils
187 8 45 24 19
IMFApp2EConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
222 7 41 18 22
IMFTrackFileCPLBuilder.java
in src/main/java/com/netflix/imflibrary/app
356 18 37 10 11
CompositionPlaylistBuilder_2016.java
in src/main/java/com/netflix/imflibrary/writerTools
485 10 37 8 14
GenericSoundEssenceDescriptor.java
in src/main/java/com/netflix/imflibrary/st0377/header
181 18 35 19 8
IMPAnalyzer.java
in src/main/java/com/netflix/imflibrary/app
398 6 33 8 10
IMFIABConstraintsChecker.java
in src/main/java/com/netflix/imflibrary/st2067_201
131 1 33 25 33
Utilities.java
in src/main/java/com/netflix/imflibrary/utils
104 10 32 31 16
KLVPacket.java
in src/main/java/com/netflix/imflibrary
166 18 30 18 7
PackingListBuilder.java
in src/main/java/com/netflix/imflibrary/writerTools
350 18 29 8 6
IMFCoreConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
179 4 29 16 24
CompositionPlaylistBuilder_2013.java
in src/main/java/com/netflix/imflibrary/writerTools
443 10 28 6 6
MXFEssenceReader.java
in src/main/java/com/netflix/imflibrary/app
199 13 27 14 5
CompoundDataTypes.java
in src/main/java/com/netflix/imflibrary/st0377
161 17 26 16 6
CompositionImageEssenceDescriptorModel.java
in src/main/java/com/netflix/imflibrary/st2067_2
501 9 24 5 15
UL.java
in src/main/java/com/netflix/imflibrary/st0377/header
92 13 24 26 4
IndexTableSegment.java
in src/main/java/com/netflix/imflibrary/st0377
212 7 23 11 10
Sequence.java
in src/main/java/com/netflix/imflibrary/st0377/header
142 13 22 15 6
MCALabelSubDescriptor.java
in src/main/java/com/netflix/imflibrary/st0377/header
110 13 22 20 10
AssetMapBuilder.java
in src/main/java/com/netflix/imflibrary/writerTools
206 13 21 10 4
ISXDTrackFileConstraints.java
in src/main/java/com/netflix/imflibrary/st2067_202
107 3 21 20 13
IMFISXDPluginConstraintsValidator.java
in src/main/java/com/netflix/imflibrary/validation
151 4 21 14 11
MXFUtils.java
in src/main/java/com/netflix/imflibrary/utils
141 6 20 14 7
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...