File Complexity Overall
  • There are 215 files with units, with 18,752 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 2 complex files (McCabe index sum 126-250; 1,353 lines of code)
    • 10 medium complex files (McCabe index sum 51-125; 3,838 lines of code)
    • 21 slightly complex files (McCabe index sum 26-50; 3,971 lines of code)
    • 182 simple files (McCabe index sum 1-25; 9,590 lines of code)
  • 45 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 7% | 20% | 21% | 51%
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% | 20% | 21% | 51%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
zuul-core0% | 7% | 21% | 21% | 48%
zuul-discovery0% | 0% | 0% | 52% | 47%
zuul-sample0% | 0% | 0% | 0% | 100%
zuul-processor0% | 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
ProxyEndpoint.java
in zuul-core/src/main/java/com/netflix/zuul/filters/endpoint
863 61 160 19 11
Headers.java
in zuul-core/src/main/java/com/netflix/zuul/message
490 66 128 26 6
HttpRequestMessageImpl.java
in zuul-core/src/main/java/com/netflix/zuul/message/http
547 60 105 19 8
CurrentPassport.java
in zuul-core/src/main/java/com/netflix/zuul/passport
389 38 95 24 9
HeaderHandoffBenchmark.java
in zuul-core/src/jmh/java/com/netflix/zuul/netty
457 34 86 19 14
RequestAttempt.java
in zuul-core/src/main/java/com/netflix/zuul/niws
307 41 72 23 11
SessionContext.java
in zuul-core/src/main/java/com/netflix/zuul/context
322 62 70 22 2
BaseZuulFilterRunner.java
in zuul-core/src/main/java/com/netflix/zuul/netty/filter
373 28 70 19 6
ClientRequestReceiver.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
393 17 69 18 16
PerServerConnectionPool.java
in zuul-core/src/main/java/com/netflix/zuul/netty/connectionpool
372 28 60 16 6
ZuulToNettyHttpHeaders.java
in zuul-core/src/main/java/com/netflix/zuul/netty
286 34 53 19 4
Server.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
392 20 51 13 7
ClientResponseWriter.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
240 13 50 21 13
HttpQueryParams.java
in zuul-core/src/main/java/com/netflix/zuul/message/http
186 23 48 26 9
DefaultClientChannelManager.java
in zuul-core/src/main/java/com/netflix/zuul/netty/connectionpool
350 28 47 13 7
OriginResponseReceiver.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
237 15 46 19 11
SslHandshakeInfoHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/ssl
254 6 44 17 27
DiscoveryResult.java
in zuul-discovery/src/main/java/com/netflix/zuul/discovery
167 34 44 26 5
HttpResponseMessageImpl.java
in zuul-core/src/main/java/com/netflix/zuul/message/http
197 35 41 21 3
ZuulMessageImpl.java
in zuul-core/src/main/java/com/netflix/zuul/message
190 22 40 21 6
PooledConnection.java
in zuul-core/src/main/java/com/netflix/zuul/netty/connectionpool
165 28 36 22 6
DynamicHttp2FrameLogger.java
in zuul-core/src/main/java/com/netflix/netty/common/http2
224 19 35 16 3
HttpUtils.java
in zuul-core/src/main/java/com/netflix/zuul/util
137 13 35 26 5
ZuulEndPointRunner.java
in zuul-core/src/main/java/com/netflix/zuul/netty/filter
187 13 33 18 9
ZuulPskServer.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/psk
194 16 32 16 5
BasicNettyOrigin.java
in zuul-core/src/main/java/com/netflix/zuul/origins
182 25 32 18 4
PushRegistrationHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/push
159 14 30 19 7
BaseSslContextFactory.java
in zuul-core/src/main/java/com/netflix/zuul/netty/ssl
177 14 28 16 7
PushMessageSender.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/push
142 13 28 20 13
ZuulFilterChainRunner.java
in zuul-core/src/main/java/com/netflix/zuul/netty/filter
135 6 27 20 18
ZuulFilterChainHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/filter
145 9 27 19 6
RejectionUtils.java
in zuul-core/src/main/java/com/netflix/netty/common/throttle
199 9 26 13 10
AccessLogPublisher.java
in zuul-core/src/main/java/com/netflix/netty/common/accesslog
104 4 26 25 21
BaseConnectionCloseHandler.java
in zuul-core/src/main/java/com/netflix/netty/common/close
117 10 25 21 5
BaseServerStartup.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
305 19 25 8 3
BaseZuulChannelInitializer.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
289 17 24 8 4
HttpBodySizeRecordingChannelHandler.java
in zuul-core/src/main/java/com/netflix/netty/common/metrics
100 11 21 21 4
ConnectionPoolHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/connectionpool
125 9 21 17 8
Http2ContentLengthEnforcingHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/http2
67 7 20 30 7
GZipResponseFilter.java
in zuul-core/src/main/java/com/netflix/zuul/filters/common
97 6 19 20 10
PassportLoggingHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/insights
115 5 19 17 12
Http2MetricsChannelHandlers.java
in zuul-core/src/main/java/com/netflix/netty/common/metrics
117 10 18 15 3
BaseFilter.java
in zuul-core/src/main/java/com/netflix/zuul/filters
90 15 18 20 3
ClientConnectionsShutdown.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
117 5 18 15 7
ConnectionPoolConfigImpl.java
in zuul-core/src/main/java/com/netflix/zuul/netty/connectionpool
110 18 18 16 1
StatusCategoryUtils.java
in zuul-core/src/main/java/com/netflix/zuul/stats/status
68 14 18 26 4
Http1FramingEnforcingHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server
73 4 17 23 11
PushAuthHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/push
94 5 17 18 7
ConnCounter.java
in zuul-core/src/main/java/com/netflix/zuul/monitoring
100 8 17 17 4
Http2OrHttpHandler.java
in zuul-core/src/main/java/com/netflix/zuul/netty/server/http2
143 6 16 11 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...