GerritCodeReview / buck
File Size

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

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 426 files with 34,127 lines of code.
    • 1 very long files (1,069 lines of code)
    • 4 long files (2,493 lines of code)
    • 31 medium size files (8,504 lines of codeclsfd_ftr_w_mp_ins)
    • 66 small files (9,153 lines of code)
    • 324 very small files (12,908 lines of code)
3% | 7% | 24% | 26% | 37%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
java3% | 5% | 24% | 27% | 38%
py0% | 73% | 26% | 0% | 0%
cql0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/com/facebook/buck/android18% | 0% | 33% | 23% | 23%
src/com/facebook/buck/command0% | 51% | 16% | 20% | 10%
src/com/facebook/buck/parser0% | 41% | 29% | 0% | 29%
src/com/facebook/buck/java0% | 16% | 28% | 23% | 31%
src/com/facebook/buck/cli0% | 9% | 30% | 27% | 31%
src/com/facebook/buck/rules0% | 0% | 33% | 21% | 44%
src/com/facebook/buck/util0% | 0% | 18% | 24% | 57%
src/com/facebook/buck/event0% | 0% | 25% | 25% | 48%
src/com/facebook/buck/shell0% | 0% | 21% | 35% | 42%
src/com/facebook/buck/parcelable0% | 0% | 40% | 19% | 40%
src/com/facebook/buck/step0% | 0% | 21% | 0% | 78%
src/com/facebook/buck/zip0% | 0% | 21% | 10% | 67%
plugin/src/com/facebook/buck0% | 0% | 0% | 55% | 44%
src/com/facebook/buck/junit0% | 0% | 0% | 89% | 10%
src/com/facebook/buck/dalvik0% | 0% | 0% | 52% | 47%
src/com/facebook/buck/model0% | 0% | 0% | 69% | 30%
src/com/facebook/buck/python0% | 0% | 0% | 87% | 12%
src/com/facebook/buck/graph0% | 0% | 0% | 39% | 60%
src/com/facebook/buck/json0% | 0% | 0% | 52% | 47%
src/com/facebook/buck/httpserver0% | 0% | 0% | 0% | 100%
scripts0% | 0% | 0% | 0% | 100%
src/com/facebook/buck/timing0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
AndroidBinaryRule.java
in src/com/facebook/buck/android
1069 83
Project.java
in src/com/facebook/buck/command
697 28
buck.py
in src/com/facebook/buck/parser
653 41
DefaultJavaLibraryRule.java
in src/com/facebook/buck/java
622 43
BuckConfig.java
in src/com/facebook/buck/cli
521 39
TestCommand.java
in src/com/facebook/buck/cli
491 17
Main.java
in src/com/facebook/buck/cli
463 24
Parser.java
in src/com/facebook/buck/parser
462 29
JavaTestRule.java
in src/com/facebook/buck/java
351 26
SmartDexingStep.java
in src/com/facebook/buck/android
324 22
ChromeTraceBuildListener.java
in src/com/facebook/buck/event/listener
307 24
TargetsCommand.java
in src/com/facebook/buck/cli
305 12
BuildRuleFactoryParams.java
in src/com/facebook/buck/rules
302 26
JavacInMemoryStep.java
in src/com/facebook/buck/java
302 13
AbstractCachingBuildRule.java
in src/com/facebook/buck/rules
291 10
ParamInfo.java
in src/com/facebook/buck/rules
284 18
FilterResourcesStep.java
in src/com/facebook/buck/android
271 26
Genrule.java
in src/com/facebook/buck/shell
268 22
AndroidPlatformTarget.java
in src/com/facebook/buck/util
267 21
RuleKey.java
in src/com/facebook/buck/rules
245 33
Generator.java
in src/com/facebook/buck/parcelable
242 14
SplitZipStep.java
in src/com/facebook/buck/android
238 10
PrebuiltJarRule.java
in src/com/facebook/buck/java
234 30
ProjectFilesystem.java
in src/com/facebook/buck/util
232 37
CassandraArtifactCache.java
in src/com/facebook/buck/rules
231 11
AndroidResourceRule.java
in src/com/facebook/buck/android
231 24
InstallCommand.java
in src/com/facebook/buck/cli
230 10
intellij.py
in src/com/facebook/buck/command
230 9
AdbCommandRunner.java
in src/com/facebook/buck/cli
224 10
MergeAndroidResourcesStep.java
in src/com/facebook/buck/android
224 18
ProGuardObfuscateStep.java
in src/com/facebook/buck/android
217 14
ExecutionContext.java
in src/com/facebook/buck/step
215 36
UberRDotJavaUtil.java
in src/com/facebook/buck/android
208 12
EntryAccounting.java
in src/com/facebook/buck/zip
205 21
JarDirectoryStep.java
in src/com/facebook/buck/java
205 12
CompileStringsStep.java
in src/com/facebook/buck/android
205 11
SuperConsoleEventBusListener.java
in src/com/facebook/buck/event/listener
199 17
BuildContext.java
in src/com/facebook/buck/rules
195 29
QueryCommand.java
in src/com/facebook/buck/cli
192 10
BuckPluginComponent.java
in plugin/src/com/facebook/buck/plugin/intellij
188 17
AbstractGenruleStep.java
in src/com/facebook/buck/shell
188 12
AuditOwnerCommand.java
in src/com/facebook/buck/cli
187 11
DalvikStatsTool.java
in src/com/facebook/buck/dalvik
187 16
ProjectConfigRule.java
in src/com/facebook/buck/rules
183 21
BuckRunner.java
in plugin/src/com/facebook/buck/plugin/intellij/commands
175 11
JavaBinaryRule.java
in src/com/facebook/buck/java
173 18
MutableDirectedGraph.java
in src/com/facebook/buck/graph
170 21
AccumulateClassNames.java
in src/com/facebook/buck/java
166 16
Build.java
in src/com/facebook/buck/command
165 7
ProjectBuildFileParser.java
in src/com/facebook/buck/json
165 8
Files With Most Units (Top 20)
File# lines# units
AndroidBinaryRule.java
in src/com/facebook/buck/android
1069 83
DefaultJavaLibraryRule.java
in src/com/facebook/buck/java
622 43
buck.py
in src/com/facebook/buck/parser
653 41
BuckConfig.java
in src/com/facebook/buck/cli
521 39
ProjectFilesystem.java
in src/com/facebook/buck/util
232 37
ExecutionContext.java
in src/com/facebook/buck/step
215 36
RuleKey.java
in src/com/facebook/buck/rules
245 33
DirtyPrintStreamDecorator.java
in src/com/facebook/buck/util
164 32
PrebuiltJarRule.java
in src/com/facebook/buck/java
234 30
BuildContext.java
in src/com/facebook/buck/rules
195 29
Parser.java
in src/com/facebook/buck/parser
462 29
Project.java
in src/com/facebook/buck/command
697 28
BuildRuleFactoryParams.java
in src/com/facebook/buck/rules
302 26
JavaTestRule.java
in src/com/facebook/buck/java
351 26
FilterResourcesStep.java
in src/com/facebook/buck/android
271 26
Main.java
in src/com/facebook/buck/cli
463 24
ChromeTraceBuildListener.java
in src/com/facebook/buck/event/listener
307 24
Ansi.java
in src/com/facebook/buck/util
144 24
AndroidResourceRule.java
in src/com/facebook/buck/android
231 24
Genrule.java
in src/com/facebook/buck/shell
268 22
Files With Long Lines (Top 3)

There are 3 files with lines longer than 120 characters. In total, there are 4 long lines.

File# lines# units# long lines
intellij.py
in src/com/facebook/buck/command
230 9 2
Main.java
in src/com/facebook/buck/cli
463 24 1
Project.java
in src/com/facebook/buck/command
697 28 1