File Complexity Overall
  • There are 821 files with units, with 81,862 lines of code.
    • 3 very complex files (McCabe index sum 251+; 6,742 lines of code)
    • 3 complex files (McCabe index sum 126-250; 2,968 lines of code)
    • 30 medium complex files (McCabe index sum 51-125; 13,154 lines of code)
    • 68 slightly complex files (McCabe index sum 26-50; 15,082 lines of code)
    • 717 simple files (McCabe index sum 1-25; 43,916 lines of code)
  • 195 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system8% | 3% | 16% | 18% | 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
java8% | 3% | 16% | 18% | 53%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
mantis-control-plane17% | 7% | 19% | 14% | 41%
mantis-common0% | 0% | 17% | 25% | 57%
mantis-runtime-autoscaler-api0% | 0% | 41% | 18% | 39%
mantis-server0% | 0% | 33% | 16% | 50%
mantis-remote-observable0% | 0% | 14% | 22% | 62%
mantis-runtime-executor0% | 0% | 25% | 28% | 46%
mantis-runtime0% | 0% | 8% | 22% | 69%
mantis-network0% | 0% | 14% | 22% | 62%
mantis-connectors0% | 0% | 0% | 18% | 81%
mantis-client0% | 0% | 0% | 74% | 25%
mantis-publish0% | 0% | 0% | 12% | 87%
mantis-jm-akka0% | 0% | 0% | 54% | 45%
mantis-runtime-loader0% | 0% | 0% | 34% | 65%
mantis-discovery-proto0% | 0% | 0% | 36% | 63%
mantis-source-jobs0% | 0% | 0% | 0% | 100%
mantis-rxcontrol0% | 0% | 0% | 0% | 100%
mantis-examples0% | 0% | 0% | 0% | 100%
mantis-common-akka0% | 0% | 0% | 0% | 100%
mantis-common-serde0% | 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
JobClusterActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster
2641 134 476 18 21
JobClusterManagerProto.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/proto
1888 231 297 16 13
JobActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job
2213 99 284 13 21
ExecutorStateManagerActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
1143 56 163 14 14
KeyValueBasedPersistenceProvider.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/persistence
863 70 134 16 10
JobClustersManagerActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master
962 67 128 13 11
DataFormatAdapter.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain
681 51 113 17 9
MantisStageMetadataImpl.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job
466 44 99 21 12
MantisJobMetadataImpl.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job
409 55 88 22 11
StorageUnit.java
in mantis-common/src/main/java/io/mantisrx/common/storage
390 87 87 22 1
ReservationRegistryActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
604 37 85 14 6
MantisWorkerMetadataImpl.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job/worker
315 45 81 26 23
ExecutorStateManagerImpl.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
664 25 81 12 15
JobDefinition.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain
341 39 77 23 13
ResourceClusterActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
895 40 75 8 8
JobWorker.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job/worker
509 25 74 15 12
JobClusterDefinitionImpl.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/domain
384 45 73 19 13
JobAutoScaler.java
in mantis-runtime-autoscaler-api/src/main/java/io/mantisrx/server/worker/jobmaster
545 20 71 13 21
NamedJob.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/store
355 52 70 20 5
MantisMasterClientApi.java
in mantis-control-plane/mantis-control-plane-client/src/main/java/io/mantisrx/server/master/client
666 32 70 11 9
RemoteObservable.java
in mantis-remote-observable/src/main/java/io/reactivex/mantis/remote/observable
577 33 70 12 9
MantisWorkerMetadataWritable.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/store
283 47 68 24 9
WorkerExecutionOperationsNetworkStage.java
in mantis-runtime-executor/src/main/java/io/mantisrx/server/worker
567 18 66 12 15
TaskExecutor.java
in mantis-server/mantis-server-agent/src/main/java/io/mantisrx/server/agent
565 40 65 12 5
CompressionUtils.java
in mantis-common/src/main/java/io/mantisrx/common/compression
329 15 63 19 14
SseWorkerConnection.java
in mantis-server/mantis-server-worker-client/src/main/java/io/mantisrx/server/worker/client
341 16 62 18 16
TaskExecutorState.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
269 32 61 23 8
MantisJobDefinition.java
in mantis-common/src/main/java/io/mantisrx/runtime
289 38 60 21 14
MantisJobStore.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/persistence
279 43 58 21 6
JobDefinitionResolver.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster
152 5 58 38 45
WorkerMetricHandler.java
in mantis-runtime-autoscaler-api/src/main/java/io/mantisrx/server/worker/jobmaster
444 13 55 12 15
PushServer.java
in mantis-network/src/main/java/io/reactivex/mantis/network/push
396 11 54 14 34
OperatorGroupBy.java
in mantis-common/src/main/java/io/reactivx/mantis/operators
252 19 52 21 6
HttpSourceImpl.java
in mantis-runtime/src/main/java/io/mantisrx/runtime/source/http/impl
550 39 52 9 7
ClutchConfiguration.java
in mantis-runtime-autoscaler-api/src/main/java/io/mantisrx/server/worker/jobmaster/clutch
157 17 52 33 26
ResourceClusterAwareSchedulerActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/server/master/scheduler
480 37 51 11 5
RunningWorker.java
in mantis-runtime-executor/src/main/java/io/mantisrx/server/worker
314 46 50 16 3
Metrics.java
in mantis-common/src/main/java/io/mantisrx/common/metrics
205 28 49 24 13
MantisJobClusterMetadataView.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster
230 32 47 20 16
ResourceClusterScalerActor.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/resourcecluster
466 21 46 10 10
MantisKafkaConsumer.java
in mantis-connectors/mantis-connector-kafka/src/main/java/io/mantisrx/connector/kafka/source
250 27 46 18 9
PushServerSse.java
in mantis-network/src/main/java/io/reactivex/mantis/network/push
262 3 46 18 43
RemoteObservableConnectionHandler.java
in mantis-remote-observable/src/main/java/io/reactivex/mantis/remote/observable
384 8 45 12 10
BaseRoute.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/api/akka/route/v1
366 14 44 12 8
MantisJobMetadataView.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/jobcluster/job
152 12 43 28 19
ServerSentEventRequestHandler.java
in mantis-runtime/src/main/java/io/mantisrx/runtime/sink
283 2 43 15 42
OnSubscribeRedo.java
in mantis-common/src/main/java/io/reactivx/mantis/operators
246 18 42 17 12
ServerSlotManager.java
in mantis-common/src/main/java/io/mantisrx/common/network
173 13 41 24 13
JobClusterProtoAdapter.java
in mantis-control-plane/mantis-control-plane-server/src/main/java/io/mantisrx/master/api/akka/route/proto
285 24 41 14 8
WorkerConfigurationWritable.java
in mantis-runtime-loader/src/main/java/io/mantisrx/runtime/loader/config
225 41 41 18 1
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...