corretto / corretto-jmc
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 14,838 units with 118,240 lines of code in units (59.2% of code).
    • 19 very long units (2,665 lines of code)
    • 124 long units (8,296 lines of code)
    • 845 medium size units (25,008 lines of code)
    • 2,055 small units (29,094 lines of code)
    • 11,795 very small units (53,177 lines of code)
2% | 7% | 21% | 24% | 44%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java2% | 7% | 21% | 24% | 44%
js0% | 0% | 20% | 16% | 62%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
application/org.openjdk.jmc.joverflow8% | 14% | 24% | 19% | 33%
core/org.openjdk.jmc.flightrecorder5% | 5% | 14% | 24% | 50%
application/org.openjdk.jmc.flightrecorder.ui2% | 10% | 20% | 23% | 42%
application/org.openjdk.jmc.joverflow.ui7% | 9% | 20% | 19% | 43%
core/org.openjdk.jmc.flightrecorder.rules.jdk4% | 12% | 34% | 20% | 28%
application/org.openjdk.jmc.rjmx.ui2% | 15% | 19% | 19% | 42%
application/org.openjdk.jmc.ui.common9% | 0% | 19% | 18% | 53%
application/org.openjdk.jmc.console.agent3% | 7% | 25% | 26% | 37%
application/org.openjdk.jmc.ui<1% | 2% | 19% | 26% | 49%
core/org.openjdk.jmc.common0% | 3% | 13% | 22% | 60%
application/org.openjdk.jmc.greychart0% | 6% | 21% | 15% | 56%
core/org.openjdk.jmc.flightrecorder.rules0% | 9% | 23% | 23% | 43%
core/org.openjdk.jmc.flightrecorder.writer0% | 8% | 11% | 24% | 55%
application/org.openjdk.jmc.browser0% | 7% | 20% | 35% | 36%
agent/src0% | 5% | 33% | 26% | 34%
application/org.openjdk.jmc.browser.attach0% | 23% | 32% | 12% | 31%
application/org.openjdk.jmc.flightrecorder.ext.g10% | 18% | 29% | 23% | 28%
application/org.openjdk.jmc.rjmx0% | 1% | 15% | 31% | 51%
application/org.openjdk.jmc.console.ui0% | 5% | 28% | 29% | 35%
application/org.openjdk.jmc.flightrecorder.controlpanel.ui0% | 2% | 19% | 33% | 44%
application/org.openjdk.jmc.console.ui.notification0% | 3% | 32% | 28% | 35%
application/org.openjdk.jmc.flightrecorder.ext.jfx0% | 23% | 9% | 23% | 43%
application/org.openjdk.jmc.console.ui.subscriptions0% | 23% | 10% | 20% | 44%
application/org.openjdk.jmc.ide.launch0% | 6% | 11% | 34% | 47%
application/org.openjdk.jmc.flightrecorder.flameview0% | 12% | 17% | 23% | 46%
application/org.openjdk.jmc.greychart.ui0% | 4% | 25% | 28% | 41%
application/org.openjdk.jmc.flightrecorder.controlpanel.ui.configuration0% | 0% | 24% | 22% | 52%
application/org.openjdk.jmc.console.ui.mbeanbrowser0% | 0% | 36% | 30% | 32%
application/org.openjdk.jmc.rcp.application0% | 0% | 19% | 27% | 52%
application/org.openjdk.jmc.rjmx.services.jfr0% | 0% | 14% | 33% | 51%
core/org.openjdk.jmc.jdp0% | 0% | 33% | 26% | 40%
core/org.openjdk.jmc.flightrecorder.serializers0% | 0% | 31% | 45% | 23%
application/org.openjdk.jmc.console.twitter0% | 0% | 25% | 29% | 45%
application/org.openjdk.jmc.console.persistence0% | 0% | 32% | 35% | 32%
application/org.openjdk.jmc.console.jconsole0% | 0% | 26% | 21% | 51%
application/org.openjdk.jmc.alert0% | 0% | 18% | 29% | 52%
application/org.openjdk.jmc.ide.jdt0% | 0% | 27% | 23% | 48%
application/org.openjdk.jmc.browser.jdp0% | 0% | 35% | 15% | 49%
application/org.openjdk.jmc.rjmx.ext0% | 0% | 53% | 0% | 46%
application/org.openjdk.jmc.osgi.extension0% | 0% | 83% | 0% | 16%
application/org.openjdk.jmc.flightrecorder.configuration0% | 0% | 7% | 12% | 80%
application/org.openjdk.jmc.rcp.intro0% | 0% | 72% | 0% | 27%
application/org.openjdk.jmc.console.ui.diagnostic0% | 0% | 30% | 17% | 52%
releng/tools0% | 0% | 55% | 22% | 22%
application/org.openjdk.jmc.flightrecorder.pde0% | 0% | 18% | 20% | 61%
application/org.openjdk.jmc.commands0% | 0% | 2% | 31% | 65%
application/org.openjdk.jmc.ide.ui0% | 0% | 17% | 41% | 41%
application/org.openjdk.jmc.flightrecorder.graphview0% | 0% | 0% | 48% | 51%
application/org.openjdk.jmc.console.pde0% | 0% | 0% | 29% | 70%
application/org.openjdk.jmc.attach0% | 0% | 0% | 69% | 30%
application/org.openjdk.jmc.flightrecorder.rules.extensionprovider0% | 0% | 0% | 100% | 0%
application/org.openjdk.jmc.flightrecorder.metadata0% | 0% | 0% | 9% | 90%
application/org.openjdk.jmc.pde0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private void formatDetailedStats()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/batch/ReportFormatter.java
322 31 3
public static String translate()
in src/core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/parser/synthetic/OracleJdkTypeIDsPre11.java
201 97 1
static IItemFactory createItemFactory()
in src/core/org.openjdk.jmc.flightrecorder/src/main/java/org/openjdk/jmc/flightrecorder/internal/parser/ItemBuilder.java
166 19 2
public AncestorViewer()
in src/application/org.openjdk.jmc.joverflow.ui/src/main/java/org/openjdk/jmc/joverflow/ui/viewers/AncestorViewer.java
156 13 2
private void doRead()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/heap/parser/HprofReader.java
149 36 0
public HeapStats calculate()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/stats/OverallStatsCalculator.java
145 32 0
private IUnorderedWindowVisitor createWindowVisitor()
in src/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/latency/MethodProfilingRule.java
144 22 6
public ClusterGroupViewer()
in src/application/org.openjdk.jmc.joverflow.ui/src/main/java/org/openjdk/jmc/joverflow/ui/viewers/ClusterGroupViewer.java
133 13 2
public CombinedChartSectionPart()
in src/application/org.openjdk.jmc.rjmx.ui/src/main/java/org/openjdk/jmc/rjmx/ui/internal/CombinedChartSectionPart.java
133 14 7
private CollectionInstanceDescriptor handleCollection()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/stats/DetailedStatsCalculator.java
126 24 1
private void init()
in src/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/LaneEditor.java
120 10 0
private void initDefaultVariables()
in src/application/org.openjdk.jmc.ui.common/src/main/java/org/openjdk/jmc/ui/common/labelingrules/Variables.java
119 21 0
private Composite createPresetTableContainer()
in src/application/org.openjdk.jmc.console.agent/src/main/java/org/openjdk/jmc/console/agent/manager/wizards/PresetManagerPage.java
118 15 1
private void addListeners()
in src/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/JComponentNavigator.java
110 21 0
private void readHeapDump()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/heap/parser/HprofReader.java
110 19 1
public FilterEditor()
in src/application/org.openjdk.jmc.ui/src/main/java/org/openjdk/jmc/ui/misc/FilterEditor.java
109 15 7
public static Color getColor()
in src/application/org.openjdk.jmc.flightrecorder.ui/src/main/java/org/openjdk/jmc/flightrecorder/ui/common/TypeLabelProvider.java
102 49 1
private IResult getResult()
in src/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/compilation/CodeCacheRule.java
101 11 3
protected void scanObjectsFromRootObj()
in src/application/org.openjdk.jmc.joverflow/src/main/java/org/openjdk/jmc/joverflow/stats/BreadthFirstHeapScanner.java
101 21 1
private GcInfoHolder getMaxFreedWindow()
in src/core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/memory/GcFreedRatioRule.java
100 18 3