bazelbuild / bazel-buildfarm
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 2,229 units with 27,161 lines of code in units (48.7% of code).
    • 19 very long units (3,266 lines of code)
    • 49 long units (3,327 lines of code)
    • 242 medium size units (7,434 lines of code)
    • 399 small units (5,894 lines of code)
    • 1,520 very small units (7,240 lines of code)
12% | 12% | 27% | 21% | 26%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java11% | 12% | 27% | 21% | 26%
js32% | 0% | 19% | 13% | 33%
py0% | 0% | 45% | 24% | 30%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
src/main11% | 12% | 27% | 21% | 26%
_site/assets46% | 0% | 20% | 20% | 12%
admin/main0% | 0% | 12% | 29% | 58%
tools0% | 0% | 45% | 24% | 30%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
private static List slots10000To14999()
in src/main/java/build/buildfarm/common/redis/RedisSlotToHash.java
386 1 0
private static List slots0To4999()
in src/main/java/build/buildfarm/common/redis/RedisSlotToHash.java
385 1 0
private static List slots5000To9999()
in src/main/java/build/buildfarm/common/redis/RedisSlotToHash.java
385 1 0
private ListenableFuture transformAndQueue()
in src/main/java/build/buildfarm/instance/shard/ShardInstance.java
205 10 5
public ShardInstance()
in src/main/java/build/buildfarm/instance/shard/ShardInstance.java
179 18 16
private CancellableOutputStream putOrReferenceGuarded()
in src/main/java/build/buildfarm/cas/cfc/CASFileCache.java
156 22 8
private ListenableFuture putDirectorySynchronized()
in src/main/java/build/buildfarm/cas/cfc/CASFileCache.java
154 17 4
function addResult()
in _site/assets/js/just-the-docs.js
140 23 2
public void getBlob()
in src/main/java/build/buildfarm/instance/shard/ShardInstance.java
138 5 5
private Code executeCommand()
in src/main/java/build/buildfarm/worker/Executor.java
133 21 8
public InputStream newInput()
in src/main/java/build/buildfarm/instance/shard/RemoteInputStreamFactory.java
123 14 5
private static void loadFilesIntoCAS()
in src/main/java/build/buildfarm/Executor.java
122 14 3
Write newWrite()
in src/main/java/build/buildfarm/cas/cfc/CASFileCache.java
117 18 2
public Worker()
in src/main/java/build/buildfarm/worker/shard/Worker.java
112 5 3
public ListenableFuture execute()
in src/main/java/build/buildfarm/instance/server/AbstractServerInstance.java
111 8 6
private static List slots15000To16383()
in src/main/java/build/buildfarm/common/redis/RedisSlotToHash.java
109 1 0
private long executePolled()
in src/main/java/build/buildfarm/worker/Executor.java
106 13 6
public static void validateActionInputDirectory()
in src/main/java/build/buildfarm/instance/server/AbstractServerInstance.java
104 14 9
private ListenableFuture validateAndRequeueOperation()
in src/main/java/build/buildfarm/instance/shard/ShardInstance.java
101 4 3
private OperationContext reportPolled()
in src/main/java/build/buildfarm/worker/ReportResultStage.java
100 17 1