golang / tools
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 654 files with 133,920 lines of code.
    • 13 very long files (28,307 lines of code)
    • 38 long files (26,454 lines of code)
    • 141 medium size files (43,633 lines of codeclsfd_ftr_w_mp_ins)
    • 155 small files (21,746 lines of code)
    • 307 very small files (13,780 lines of code)
21% | 19% | 32% | 16% | 10%
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
go21% | 19% | 32% | 16% | 10%
ts85% | 0% | 14% | 0% | 0%
js0% | 59% | 26% | 6% | 7%
css0% | 48% | 27% | 19% | 5%
html0% | 0% | 50% | 13% | 36%
yaml0% | 0% | 0% | 0% | 100%
bash0% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
internal30% | 11% | 31% | 16% | 9%
go11% | 31% | 32% | 13% | 11%
cmd20% | 12% | 38% | 21% | 6%
godoc22% | 27% | 21% | 14% | 15%
container0% | 100% | 0% | 0% | 0%
gopls0% | 38% | 29% | 19% | 13%
present0% | 43% | 0% | 37% | 18%
refactor0% | 17% | 69% | 9% | 2%
blog0% | 0% | 90% | 0% | 9%
playground0% | 0% | 89% | 0% | 10%
cover0% | 0% | 100% | 0% | 0%
benchmark0% | 0% | 0% | 100% | 0%
copyright0% | 0% | 0% | 0% | 100%
txtar0% | 0% | 0% | 0% | 100%
imports0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
zstdlib.go
in internal/imports
10753 -
yacc.go
in cmd/goyacc
2806 79
completion.go
in internal/lsp/source/completion
1943 59
builder.go
in go/ssa
1649 38
tsprotocol.go
in internal/lsp/protocol
1627 -
reflect.go
in go/pointer
1489 193
fix.go
in internal/imports
1337 58
code.ts
in internal/lsp/protocol/typescript
1229 56
ops.go
in go/ssa/interp
1205 18
index.go
in godoc
1135 76
rietveld.go
in godoc/redirect
1064 1
file.go
in cmd/splitdwarf/internal/macho
1050 83
options.go
in internal/lsp/source
1020 40
tsserver.go
in internal/lsp/protocol
1000 74
editor.go
in internal/lsp/fake
988 61
parser.go
in go/internal/gccgoimporter
978 52
extract.go
in internal/lsp/source
932 24
printf.go
in go/analysis/passes/printf
874 33
gen.go
in go/pointer
849 42
sparse.go
in container/intsets
839 50
serve.go
in internal/lsp/debug
820 46
style.css
in godoc/static
818 -
semantic.go
in internal/lsp
815 28
golist.go
in go/packages
790 22
bimport.go
in go/internal/gcimporter
770 39
iexport.go
in go/internal/gcimporter
748 45
packages.go
in go/packages
736 18
gcimporter.go
in go/internal/gcimporter
731 45
describe.go
in cmd/guru
702 27
asmdecl.go
in go/analysis/passes/asmdecl
684 8
iimport.go
in go/internal/gcimporter
684 37
godoc.go
in godoc
676 45
hover.go
in internal/lsp/source
659 19
checker.go
in go/analysis/internal/checker
654 23
command.go
in internal/lsp
651 30
server.go
in godoc
639 29
loader.go
in go/loader
624 31
ssa.go
in go/ssa
622 137
rename_check.go
in internal/lsp/source
619 26
bexport.go
in go/internal/gcimporter
602 35
generate.go
in gopls/doc
594 30
parse.go
in present
578 32
mod.go
in internal/imports
559 23
godocs.js
in godoc/static
551 55
cover.go
in cmd/cover
547 27
check.go
in refactor/rename
542 21
vcs.go
in go/vcs
533 26
hvn.go
in go/pointer
523 22
interp.go
in go/ssa/interp
512 14
slides.js
in cmd/present/static
506 49
Files With Most Units (Top 20)
File# lines# units
reflect.go
in go/pointer
1489 193
ssa.go
in go/ssa
622 137
keys.go
in internal/event/keys
355 117
file.go
in cmd/splitdwarf/internal/macho
1050 83
yacc.go
in cmd/goyacc
2806 79
index.go
in godoc
1135 76
tsserver.go
in internal/lsp/protocol
1000 74
server_gen.go
in internal/lsp
224 73
editor.go
in internal/lsp/fake
988 61
graph.go
in go/callgraph/vta
473 60
completion.go
in internal/lsp/source/completion
1943 59
fix.go
in internal/imports
1337 58
code.ts
in internal/lsp/protocol/typescript
1229 56
godocs.js
in godoc/static
551 55
parser.go
in go/internal/gccgoimporter
978 52
sparse.go
in container/intsets
839 50
reflect.go
in go/ssa/interp
419 50
slides.js
in cmd/present/static
506 49
print.go
in go/ssa
356 49
serve.go
in internal/lsp/debug
820 46
Files With Long Lines (Top 20)

There are 167 files with lines longer than 120 characters. In total, there are 473 long lines.

File# lines# units# long lines
server_gen.go
in internal/lsp
224 73 23
tsserver.go
in internal/lsp/protocol
1000 74 21
command.go
in internal/lsp
651 30 13
asmdecl.go
in go/analysis/passes/asmdecl
684 8 13
extract.go
in internal/lsp/source
932 24 12
golist.go
in go/packages
790 22 12
packageroot.html
in godoc/static
132 - 11
editor.go
in internal/lsp/fake
988 61 10
fix.go
in internal/imports
1337 58 10
call_hierarchy.go
in internal/lsp/source
251 7 9
generate.go
in gopls/doc
594 30 9
printf.go
in go/analysis/passes/printf
874 33 9
info.go
in internal/lsp/cmd
148 24 8
diagnostics.go
in internal/lsp
489 17 8
file.go
in cmd/splitdwarf/internal/macho
1050 83 7
main.go
in cmd/godoc
349 13 7
cmd.go
in internal/lsp/cmd
500 37 6
serve.go
in internal/lsp/cmd
110 7 6
link.go
in internal/lsp
250 7 6
implementations.go
in internal/lsp/template
156 5 5