File Complexity Overall
  • There are 103 files with units, with 16,227 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 0 complex files (McCabe index sum 126-250; 0 lines of code)
    • 4 medium complex files (McCabe index sum 51-125; 2,007 lines of code)
    • 15 slightly complex files (McCabe index sum 26-50; 4,095 lines of code)
    • 84 simple files (McCabe index sum 1-25; 10,125 lines of code)
  • 52 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 12% | 25% | 62%
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
pl0% | 0% | 13% | 17% | 69%
rb0% | 0% | 7% | 27% | 64%
pm0% | 0% | 33% | 46% | 19%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
CDS0% | 0% | 12% | 25% | 62%
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
915 21 109 12 20
Datastore.pm
in CDS/CDS
514 20 87 17 12
VSApi.rb
in CDS/Ruby/lib/Vidispine
346 16 76 22 19
VSSearch.rb
in CDS/Ruby/lib/Vidispine
232 7 55 24 21
VSItem.rb
in CDS/Ruby/lib/Vidispine
206 9 44 21 14
DBLogger.pm
in CDS/CDS
221 17 43 19 8
youtube_upload.rb
in CDS/scripts
398 10 42 11 10
ESLogger.pm
in CDS/CDS
230 18 41 18 8
Datastore.rb
in CDS/Ruby/lib/CDS
406 13 41 10 13
Elemental.rb
in CDS/Ruby/lib/Elemental
284 8 40 14 17
Job.rb
in CDS/Ruby/lib/Elemental
276 6 40 14 16
Tags.rb
in CDS/Ruby/PLUTO/lib/PLUTO
176 10 34 19 7
127 8 33 26 12
encodingdotcom.pl
in CDS/scripts
627 11 33 5 9
Entity.rb
in CDS/Ruby/PLUTO/lib/PLUTO
278 3 33 12 31
VSShape.rb
in CDS/Ruby/lib/Vidispine
172 8 32 19 10
saxmeta.pm
in CDS/CDS/Parser
140 8 31 22 10
355 10 29 8 8
ffprobe.pl
in CDS/scripts
199 6 26 13 9
136 2 25 18 17
VSCollection.rb
in CDS/Ruby/lib/Vidispine
103 2 25 24 16
VSJob.rb
in CDS/Ruby/lib/Vidispine
124 7 25 20 10
Episode5.pm
in CDS/CDS/Datastore
156 6 22 14 12
testm3u8.rb
in CDS/Ruby
144 2 19 13 14
112 3 17 15 7
elastic_transcode.rb
in CDS/scripts
302 7 17 6 5
ftp.pl
in CDS/scripts
243 3 17 7 6
124 5 17 14 4
Notification.rb
in CDS/Ruby/PLUTO/lib/PLUTO
113 1 17 15 17
VSMetadataElements.rb
in CDS/Ruby/lib/Vidispine
74 10 16 22 3
130 3 15 12 7
pluto_get_image.rb
in CDS/scripts
209 3 15 7 11
ftp_pull.pl
in CDS/scripts
235 4 15 6 8
Thumbor.rb
in CDS/Ruby/lib/Thumbor
127 6 15 12 4
checksum.pl
in CDS/scripts
138 4 14 10 5
r2_update_multiple.pl
in CDS/scripts
255 6 14 5 4
image_crop_create.rb
in CDS/scripts
164 4 14 9 6
engine_transcode.pl
in CDS/scripts
182 3 14 8 10
HLSUtils.rb
in CDS/Ruby/lib/CDS
66 2 14 21 11
rss_parse.pl
in CDS/scripts
178 5 13 7 7
saxRoutes.pm
in CDS/CDS/Parser
54 5 12 22 4
archive_to_san.pl
in CDS/scripts
214 2 12 6 6
VSStorage.rb
in CDS/Ruby/lib/Vidispine
176 2 12 7 10
VSFieldCache.rb
in CDS/Ruby/lib/Vidispine
60 2 12 20 11
wait_for_file.pl
in CDS/scripts
65 2 11 17 8
facebook_upload.pl
in CDS/scripts
390 9 11 3 3
read_generic_xml.pl
in CDS/scripts
83 2 11 13 6
VSAcl.rb
in CDS/Ruby/lib/Vidispine
76 4 11 14 6
191 2 10 5 9
338 2 10 3 5
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...