File Complexity Overall
  • There are 67 files with units, with 6,401 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 1 complex files (McCabe index sum 126-250; 605 lines of code)
    • 4 medium complex files (McCabe index sum 51-125; 1,071 lines of code)
    • 6 slightly complex files (McCabe index sum 26-50; 1,278 lines of code)
    • 56 simple files (McCabe index sum 1-25; 3,447 lines of code)
  • 25 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 9% | 16% | 19% | 53%
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% | 9% | 16% | 19% | 53%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
dynomitemanager-core0% | 18% | 22% | 13% | 46%
dynomitemanager-common0% | 0% | 11% | 29% | 58%
dynomitemanager-web0% | 0% | 0% | 0% | 100%
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
RedisStorageProxy.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
605 27 128 21 33
InstanceDataDAOCassandra.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/tokensdb
331 18 57 17 7
RedisInfoParser.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
242 16 55 23 7
InstanceState.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/config
179 46 54 30 2
DynomiteAdmin.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/resources
319 18 54 17 26
InstanceIdentity.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/identity
262 22 46 18 8
AWSMembership.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/aws
265 14 44 17 8
ServoMetricsTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/monitoring
221 14 39 18 9
DynomiteProcessManager.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/dynomite
216 14 37 17 6
AbstractConfigSource.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/configSource
176 15 30 17 3
AppsInstance.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/identity
138 26 26 19 1
ArdbRocksDbRedisCompatible.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
139 4 25 18 12
FloridaServer.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager
167 5 24 14 17
StorageProcessManager.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
118 9 20 17 3
DynomiteStandardTuner.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/dynomite
165 4 19 12 11
RedisInfoMetricsTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/monitoring
112 8 17 15 4
MemcachedStorageProxy.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
73 16 16 22 1
CassandraInstanceFactory.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/tokensdb
115 9 15 13 3
SnapshotTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/backup
87 4 14 16 10
CompositeConfigSource.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/configSource
81 10 14 17 3
WarmBootstrapTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
115 4 13 11 10
PropertiesConfigSource.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/configSource
93 8 13 14 4
TaskScheduler.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/scheduler
97 8 13 13 3
BoundedExponentialRetryCallable.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/utils
63 6 13 21 8
ProxyAndStorageResetTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/dynomite
77 5 12 16 6
Task.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/scheduler
80 7 12 15 5
UpdateSecuritySettings.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/aws
74 4 12 16 8
BlockingSubmitThreadPoolExecutor.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/scheduler
80 4 11 14 5
TokenManager.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/utils
62 5 11 18 5
RetryableCallable.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/utils
63 5 10 16 6
VpcInstanceDataRetriever.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/instance
44 7 10 23 4
S3Restore.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/aws
92 2 9 10 7
AwsRoleAssumptionCredential.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/dualAccount
48 2 9 19 8
ClearCredential.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/aws
55 5 9 16 5
JedisUtils.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/storage
82 3 8 10 3
ProcessMonitorTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/monitoring
68 4 8 12 5
SystemUtils.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/utils
55 2 8 15 4
EurekaHostSupplier.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/supplier
79 2 8 10 7
SecurityGroupAdmin.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/resources
58 3 7 12 3
SystemPropertiesConfigSource.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/configSource
40 4 7 18 4
NamedThreadPoolExecutor.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/scheduler
45 3 7 16 5
ExponentialRetryCallable.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/utils
51 3 7 14 5
AwsInstanceDataRetriever.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/instance
27 7 7 26 1
LocalInstanceDataRetriever.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/instance
32 7 7 22 1
AwsInstanceEnvIdentity.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/aws
31 5 7 23 3
JerseyModule.java
in dynomitemanager-web/src/main/java/com/netflix/florida/startup
76 5 7 9 2
S3Backup.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/aws
88 1 6 7 6
InstanceEnvVariables.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/resources/env
37 4 6 16 2
GuiceContext.java
in dynomitemanager-common/src/main/java/com/netflix/nfsidecar/guice
27 3 6 22 3
RestoreTask.java
in dynomitemanager-core/src/main/java/com/netflix/dynomitemanager/backup
64 3 5 8 3
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...