Jenkins
Unit Size

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 9,788 units with 68,630 lines of code in units (64.4% of code).
    • 11 very long units (1,448 lines of code)
    • 76 long units (4,791 lines of code)
    • 457 medium size units (13,714 lines of code)
    • 1,026 small units (14,658 lines of code)
    • 8,218 very small units (34,019 lines of code)
2% | 6% | 19% | 21% | 49%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
java2% | 6% | 19% | 21% | 49%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Logical Component
level-1 logical decomposition
core1% | 6% | 19% | 21% | 49%
cli25% | 9% | 24% | 12% | 27%
Legend:
101+
51-100
21-50
11-20
1-10
level-2 logical decomposition
core/src/main/java/hudson/model2% | 5% | 18% | 20% | 51%
core/src/main/java/hudson3% | 9% | 22% | 19% | 45%
cli/src/main/java/hudson/cli21% | 6% | 30% | 13% | 28%
cli/src/main/java/hudson/util37% | 17% | 11% | 10% | 23%
core/src/main/java/jenkins/model2% | 4% | 20% | 23% | 49%
core/src/main/java/hudson/slaves5% | 12% | 14% | 18% | 48%
core/src/main/java/hudson/util1% | 6% | 18% | 21% | 52%
core/src/main/java/hudson/cli0% | 17% | 32% | 15% | 34%
core/src/main/java/jenkins/security0% | 9% | 13% | 31% | 46%
core/src/main/java/hudson/tasks0% | 12% | 17% | 17% | 52%
core/src/main/java/jenkins/util0% | 7% | 21% | 25% | 45%
core/src/main/java/hudson/lifecycle0% | 27% | 22% | 23% | 25%
core/src/main/java/jenkins/widgets0% | 25% | 9% | 23% | 41%
core/src/main/java/hudson/org0% | 20% | 37% | 9% | 33%
core/src/main/java/jenkins/org0% | 12% | 42% | 22% | 23%
core/src/main/java/jenkins/slaves0% | 9% | 24% | 29% | 36%
core/src/main/java/jenkins/telemetry0% | 11% | 16% | 16% | 55%
core/src/main/java/hudson/security0% | 2% | 18% | 25% | 53%
core/src/main/java/jenkins/install0% | 7% | 33% | 14% | 44%
core/src/main/java/hudson/os0% | 13% | 39% | 9% | 37%
core/src/main/java/hudson/triggers0% | 8% | 11% | 24% | 56%
core/src/main/java/hudson/scheduler0% | 0% | 37% | 16% | 46%
core/src/main/java/jenkins0% | 0% | 20% | 12% | 67%
core/src/main/java/hudson/search0% | 0% | 20% | 29% | 49%
core/src/main/java/jenkins/fingerprints0% | 0% | 44% | 18% | 36%
core/src/main/java/hudson/console0% | 0% | 16% | 28% | 54%
core/src/main/java/hudson/logging0% | 0% | 21% | 25% | 52%
core/src/main/java/jenkins/triggers0% | 0% | 67% | 9% | 22%
core/src/main/java/hudson/widgets0% | 0% | 35% | 26% | 37%
core/src/main/java/hudson/tools0% | 0% | 11% | 29% | 58%
core/src/main/java/jenkins/websocket0% | 0% | 37% | 19% | 42%
core/src/main/java/hudson/diagnosis0% | 0% | 14% | 29% | 56%
core/src/main/java/jenkins/diagnosis0% | 0% | 42% | 14% | 42%
core/src/main/java/jenkins/tasks0% | 0% | 16% | 16% | 67%
core/src/main/java/jenkins/agents0% | 0% | 35% | 0% | 64%
core/src/main/java/jenkins/management0% | 0% | 8% | 14% | 76%
core/src/main/java/hudson/init0% | 0% | 8% | 28% | 63%
core/src/main/java/hudson/fsp0% | 0% | 61% | 0% | 38%
core/src/main/java/hudson/node_monitors0% | 0% | 3% | 19% | 76%
core/src/main/java/hudson/views0% | 0% | 11% | 7% | 81%
core/src/main/java/hudson/scm0% | 0% | 0% | 22% | 77%
core/src/main/java/jenkins/cli0% | 0% | 0% | 66% | 33%
core/src/main/java/jenkins/plugins0% | 0% | 0% | 45% | 55%
core/src/main/java/jenkins/scm0% | 0% | 0% | 31% | 68%
core/src/main/java/jenkins/mvn0% | 0% | 0% | 14% | 85%
core/src/main/java/jenkins/diagnostics0% | 0% | 0% | 21% | 78%
core/src/main/java/hudson/markup0% | 0% | 0% | 0% | 100%
core/src/main/java/org/acegisecurity0% | 0% | 0% | 0% | 100%
core/src/main/java/jenkins/tools0% | 0% | 0% | 0% | 100%
Legend:
101+
51-100
21-50
11-20
1-10
Alternative Visuals
Longest Units
Top 50 longest units
Unit# linesMcCabe index# params
public static int _main()
in cli/src/main/java/hudson/cli/CLI.java
181 57 1
public void maintain()
in core/src/main/java/hudson/model/Queue.java
157 31 0
public TaskBuilder initTasks()
in core/src/main/java/hudson/PluginManager.java
154 18 1
private void serveFile()
in core/src/main/java/hudson/model/DirectoryBrowserSupport.java
145 39 5
public void run()
in core/src/main/java/hudson/model/Executor.java
129 24 0
public boolean hasMoreTokens()
in cli/src/main/java/hudson/util/QuotedStringTokenizer.java
126 38 0
protected Jenkins()
in core/src/main/java/jenkins/model/Jenkins.java
124 21 3
public void contextInitialized()
in core/src/main/java/hudson/WebAppMain.java
114 25 1
private void update()
in core/src/main/java/hudson/slaves/NodeProvisioner.java
109 22 0
public Graph getBuildTimeGraph()
in core/src/main/java/hudson/model/Job.java
105 11 0
protected AxisState drawCategoryLabels()
in core/src/main/java/hudson/util/NoOverlapCategoryAxis.java
104 17 6
protected int run()
in core/src/main/java/hudson/cli/BuildCommand.java
99 31 0
public Object doUnmarshal()
in core/src/main/java/hudson/util/RobustReflectionConverter.java
98 29 3
protected final void execute()
in core/src/main/java/hudson/model/Run.java
98 19 1
public void setChannel()
in core/src/main/java/hudson/slaves/SlaveComputer.java
95 17 3
public static int remotePost()
in core/src/main/java/hudson/Main.java
88 20 1
private synchronized TaskBuilder loadTasks()
in core/src/main/java/jenkins/model/Jenkins.java
86 22 0
public void doXml()
in core/src/main/java/hudson/model/Api.java
84 20 6
public void delete()
in core/src/main/java/hudson/model/AbstractItem.java
83 26 0
private FormValidation checkUrl()
in core/src/main/java/jenkins/security/ResourceDomainConfiguration.java
79 22 2
private boolean installIfNecessaryFrom()
in core/src/main/java/hudson/FilePath.java
77 20 4
private void doMigrate()
in core/src/main/java/jenkins/model/RunIdMigrator.java
77 13 1
public void drawItem()
in core/src/main/java/hudson/util/StackedAreaRenderer2.java
75 10 10
public boolean perform()
in core/src/main/java/hudson/tasks/Maven.java
74 15 3
protected int run()
in core/src/main/java/hudson/cli/InstallPluginCommand.java
73 19 0
protected Set loadTrustAnchors()
in core/src/main/java/jenkins/util/JSONSignatureValidator.java
73 16 1
public static RangeSet fromString()
in core/src/main/java/hudson/model/Fingerprint.java
72 22 2
public String invoke()
in core/src/main/java/hudson/FilePath.java
72 22 2
public FormValidation verifySignature()
in core/src/main/java/jenkins/util/JSONSignatureValidator.java
70 17 1
public synchronized long check()
in core/src/main/java/hudson/slaves/SimpleScheduledRetentionStrategy.java
69 20 1
private BeanConfiguration invokeBeanDefiningMethod()
in core/src/main/java/hudson/util/spring/BeanBuilder.java
68 14 2
public void load()
in core/src/main/java/hudson/model/Queue.java
68 16 0
public void perform()
in core/src/main/java/hudson/tasks/LogRotator.java
67 22 1
void resolvePluginDependencies()
in core/src/main/java/hudson/PluginWrapper.java
67 19 0
public int main()
in core/src/main/java/hudson/cli/declarative/CLIRegisterer.java
66 12 5
private boolean isLocationWhitelisted()
in core/src/main/java/jenkins/security/ClassFilterImpl.java
65 18 1
protected void doMarshal()
in core/src/main/java/hudson/util/RobustReflectionConverter.java
64 16 3
public File download()
in core/src/main/java/hudson/model/UpdateCenter.java
64 17 2
private void addInternal()
in core/src/main/java/jenkins/widgets/HistoryPageFilter.java
64 19 1
public TarEntry getNextEntry()
in core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java
63 17 0
public static String dumpThreadInfo()
in core/src/main/java/hudson/Functions.java
62 16 2
public boolean perform()
in core/src/main/java/hudson/tasks/CommandInterpreter.java
61 13 3
protected void renameTo()
in core/src/main/java/hudson/model/AbstractItem.java
61 11 1
public boolean keep()
in core/src/main/java/jenkins/security/stapler/DoActionFilter.java
61 20 1
public boolean isBlacklisted()
in core/src/main/java/jenkins/security/ClassFilterImpl.java
61 19 1
public void doRssChangelog()
in core/src/main/java/hudson/model/Job.java
60 8 2
public boolean isValidInet6Address()
in core/src/main/java/jenkins/org/apache/commons/validator/routines/InetAddressValidator.java
60 24 1
public HttpResponse doWs()
in core/src/main/java/hudson/cli/CLIAction.java
59 5 0
public String getStatData()
in core/src/main/java/hudson/model/UsageStatistics.java
59 10 0
protected void loadDetachedPlugins()
in core/src/main/java/hudson/PluginManager.java
58 14 0