corretto / corretto-8
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 225,113 units with 2,408,899 lines of code in units (66.4% of code).
    • 346 very complex units (90,965 lines of code)
    • 1,243 complex units (141,181 lines of code)
    • 7,516 medium complex units (408,694 lines of code)
    • 15,090 simple units (429,781 lines of code)
    • 200,918 very simple units (1,338,278 lines of code)
3% | 5% | 16% | 17% | 55%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
java2% | 5% | 15% | 17% | 58%
cpp6% | 7% | 21% | 18% | 45%
c7% | 8% | 25% | 28% | 29%
h8% | 3% | 11% | 1% | 75%
m6% | 0% | 22% | 24% | 46%
hpp<1% | <1% | 1% | 4% | 93%
cc0% | 44% | 27% | 7% | 20%
js0% | 2% | 1% | 17% | 77%
pl0% | 0% | 87% | 0% | 12%
cs0% | 0% | 0% | 76% | 23%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
src/jdk3% | 5% | 17% | 19% | 53%
src/hotspot4% | 6% | 17% | 16% | 55%
src/jaxp5% | 8% | 18% | 16% | 52%
src/jaxws2% | 5% | 13% | 15% | 62%
src/langtools2% | 5% | 14% | 17% | 59%
src/nashorn1% | 5% | 14% | 15% | 62%
src/corba1% | 5% | 12% | 16% | 64%
src/common0% | 0% | 65% | 0% | 34%
src/make0% | 0% | 87% | 0% | 12%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private final int jjMoveNfa_0()
in src/jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/impl/scd/SCDParserTokenManager.java
843 395 2
private static int getMask()
in src/jdk/src/share/classes/javax/management/MBeanPermission.java
340 281 1
void ClassVerifier::verify_method()
in src/hotspot/src/share/vm/classfile/verifier.cpp
1039 269 2
private final int jjMoveNfa_0()
in src/jdk/src/share/classes/com/sun/jmx/snmp/IPAcl/ParserTokenManager.java
609 256 2
void VM_Version::get_processor_features()
in src/hotspot/src/cpu/x86/vm/vm_version_x86.cpp
587 254 0
void SharkBlock::parse_bytecode()
in src/hotspot/src/share/vm/shark/sharkBlock.cpp
793 240 2
void Parse::do_one_bytecode()
in src/hotspot/src/share/vm/opto/parse2.cpp
824 234 0
void BCEscapeAnalyzer::iterate_one_block()
in src/hotspot/src/share/vm/ci/bcEscapeAnalyzer.cpp
619 227 3
public void accept()
in src/jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/org/objectweb/asm/ClassReader.java
896 224 3
void Compile::final_graph_reshaping_impl()
in src/hotspot/src/share/vm/opto/compile.cpp
424 222 2
private final int jjMoveNfa_0()
in src/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
583 219 2
void interp1()
in src/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/GenerateOopMap.java
250 219 1
void GenerateOopMap::interp1()
in src/hotspot/src/share/vm/oops/generateOopMap.cpp
244 212 1
public final Symbol parser_do_action()
in src/jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XPathParser.java
1309 210 4
bool ciTypeFlow::StateVector::apply_one_bytecode()
in src/hotspot/src/share/vm/ci/ciTypeFlow.cpp
575 206 1
CDebugInfoDataBase buildDataBase()
in src/hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/WindbgCDebugInfoBuilder.java
462 206 2
void MethodLiveness::BasicBlock::compute_gen_kill_single()
in src/hotspot/src/share/vm/compiler/methodLiveness.cpp
258 204 1
void doCommands()
in src/jdk/src/share/classes/sun/security/tools/keytool/Main.java
545 203 1
private int jjMoveNfa_0()
in src/jaxws/src/share/jaxws_classes/com/sun/xml/internal/rngom/parse/compact/CompactSyntaxTokenManager.java
471 203 2
int ZEXPORT inflate()
in src/jdk/src/share/native/java/util/zip/zlib/inflate.c
637 202 2