golang / go
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 3,248 files with 985,233 lines of code.
    • 174 very long files (504,909 lines of code)
    • 239 long files (168,436 lines of code)
    • 577 medium size files (180,735 lines of codeclsfd_ftr_w_mp_ins)
    • 506 small files (73,224 lines of code)
    • 1,752 very small files (57,929 lines of code)
51% | 17% | 18% | 7% | 5%
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
go53% | 16% | 17% | 6% | 5%
s31% | 23% | 23% | 12% | 7%
html90% | 6% | 3% | 0% | <1%
pl0% | 0% | 75% | 0% | 24%
js0% | 0% | 82% | 0% | 17%
py0% | 0% | 100% | 0% | 0%
c0% | 0% | 0% | 11% | 88%
S0% | 0% | 0% | 34% | 65%
bash0% | 0% | 0% | 28% | 71%
h0% | 0% | 0% | 0% | 100%
f900% | 0% | 0% | 0% | 100%
cc0% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/cmd69% | 11% | 12% | 4% | 2%
src/syscall60% | 14% | 18% | 4% | 2%
src/runtime19% | 28% | 26% | 11% | 13%
src/crypto43% | 17% | 22% | 10% | 6%
doc90% | 6% | 3% | 0% | 0%
src/net32% | 18% | 27% | 13% | 7%
src/time74% | 7% | 7% | 5% | 4%
src/unicode90% | 0% | 7% | 0% | 2%
src/go23% | 23% | 32% | 14% | 5%
src/reflect79% | 0% | 5% | 2% | 13%
src/debug37% | 29% | 20% | 7% | 4%
src/hash51% | 11% | 10% | 13% | 12%
src/html43% | 13% | 20% | 18% | 3%
src/database70% | 0% | 14% | 14% | 0%
src/encoding11% | 49% | 29% | 8% | 1%
src/regexp32% | 18% | 42% | 2% | 4%
src/testing29% | 26% | 27% | 7% | 8%
src/internal4% | 27% | 24% | 16% | 26%
src/math5% | 20% | 32% | 26% | 16%
src/image0% | 54% | 30% | 12% | 2%
src/text0% | 86% | 7% | 3% | 3%
src/strconv0% | 48% | 41% | 6% | 2%
src/fmt0% | 79% | 19% | 0% | 1%
src/compress0% | 43% | 20% | 29% | 6%
src/archive0% | 34% | 54% | 8% | 2%
src/index0% | 58% | 36% | 0% | 4%
src/bytes0% | 70% | 20% | 8% | 0%
src/strings0% | 55% | 26% | 7% | 10%
misc/ios0% | 87% | 0% | 12% | 0%
src/flag0% | 100% | 0% | 0% | 0%
src/bufio0% | 69% | 30% | 0% | 0%
src/os0% | 0% | 33% | 20% | 45%
src/mime0% | 0% | 51% | 37% | 11%
src/path0% | 0% | 47% | 42% | 9%
src/sort0% | 0% | 77% | 0% | 22%
src/log0% | 0% | 96% | 0% | 3%
misc/wasm0% | 0% | 88% | 0% | 11%
src/io0% | 0% | 31% | 24% | 43%
src/context0% | 0% | 100% | 0% | 0%
misc/android0% | 0% | 100% | 0% | 0%
src/expvar0% | 0% | 100% | 0% | 0%
src/sync0% | 0% | 18% | 58% | 22%
src/embed0% | 0% | 100% | 0% | 0%
misc/cgo0% | 0% | 0% | 46% | 53%
misc/linkcheck0% | 0% | 0% | 100% | 0%
src/container0% | 0% | 0% | 47% | 52%
src0% | 0% | 0% | 34% | 65%
src/plugin0% | 0% | 0% | 0% | 100%
misc/chrome0% | 0% | 0% | 0% | 100%
src/errors0% | 0% | 0% | 0% | 100%
src/builtin0% | 0% | 0% | 0% | 100%
misc/swig0% | 0% | 0% | 0% | 100%
lib/time0% | 0% | 0% | 0% | 100%
src/constraints0% | 0% | 0% | 0% | 100%
src/unsafe0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
opGen.go
in src/cmd/compile/internal/ssa
37417 11
rewriteAMD64.go
in src/cmd/compile/internal/ssa
30733 422
rewriteARM64.go
in src/cmd/compile/internal/ssa
26802 355
rewritegeneric.go
in src/cmd/compile/internal/ssa
23022 221
rewriteARM.go
in src/cmd/compile/internal/ssa
19162 325
rewritePPC64.go
in src/cmd/compile/internal/ssa
16200 266
rewriteS390X.go
in src/cmd/compile/internal/ssa
15625 274
rewrite386.go
in src/cmd/compile/internal/ssa
10880 212
h2_bundle.go
in src/net/http
7845 460
tables.go
in src/unicode
7783 -
rewriteMIPS64.go
in src/cmd/compile/internal/ssa
7175 195
zipdata.go
in src/time/tzdata
7099 -
rewriteMIPS.go
in src/cmd/compile/internal/ssa
6649 169
go_spec.html
in doc
6623 -
asm7.go
in src/cmd/internal/obj/arm64
6073 99
ssa.go
in src/cmd/compile/internal/ssagen
6016 192
rewriteRISCV64.go
in src/cmd/compile/internal/ssa
5971 161
go1.17_spec.html
in doc
5712 -
asmz.go
in src/cmd/internal/obj/s390x
4519 72
avx_optabs.go
in src/cmd/internal/obj/x86
4469 -
asm6.go
in src/cmd/internal/obj/x86
4445 53
rewriteWasm.go
in src/cmd/compile/internal/ssa
4361 152
asm9.go
in src/cmd/internal/obj/ppc64
4274 71
s
zcallback_windows_arm.s
in src/runtime
4010 -
s
zcallback_windows_arm64.s
in src/runtime
4010 -
proc.go
in src/runtime
3943 205
elf.go
in src/debug/elf
2865 70
p384_fiat64.go
in src/crypto/elliptic/internal/fiat
2843 11
asm5.go
in src/cmd/internal/obj/arm
2542 41
gcc.go
in src/cmd/cgo
2502 63
s
crc32_table_ppc64le.s
in src/hash/crc32
2466 -
exec.go
in src/cmd/go/internal/work
2399 87
s
p256_asm_s390x.s
in src/crypto/elliptic
2315 -
value.go
in src/reflect
2313 147
entity.go
in src/html
2241 1
rewritedec64.go
in src/cmd/compile/internal/ssa
2215 56
type.go
in src/reflect
2185 105
s
p256_asm_ppc64le.s
in src/crypto/elliptic
2173 -
sql.go
in src/database/sql
2147 151
server.go
in src/net/http
2146 148
pkg.go
in src/cmd/go/internal/load
2101 81
parser.go
in src/go/parser
2093 97
s
p256_asm_amd64.s
in src/crypto/elliptic
2078 -
parser.go
in src/cmd/compile/internal/syntax
2072 83
data.go
in src/cmd/link/internal/ld
2018 58
s
zcallback_windows.s
in src/runtime
2010 -
regalloc.go
in src/cmd/compile/internal/ssa
2003 43
transport.go
in src/net/http
1944 101
zerrors_linux_s390x.go
in src/syscall
1925 -
zerrors_linux_ppc64le.go
in src/syscall
1887 -
Files With Most Units (Top 20)
File# lines# units
h2_bundle.go
in src/net/http
7845 460
rewriteAMD64.go
in src/cmd/compile/internal/ssa
30733 422
rewriteARM64.go
in src/cmd/compile/internal/ssa
26802 355
rewriteARM.go
in src/cmd/compile/internal/ssa
19162 325
rewriteS390X.go
in src/cmd/compile/internal/ssa
15625 274
rewritePPC64.go
in src/cmd/compile/internal/ssa
16200 266
node_gen.go
in src/cmd/compile/internal/ir
1456 250
rewritegeneric.go
in src/cmd/compile/internal/ssa
23022 221
rewrite386.go
in src/cmd/compile/internal/ssa
10880 212
proc.go
in src/runtime
3943 205
rewriteMIPS64.go
in src/cmd/compile/internal/ssa
7175 195
ssa.go
in src/cmd/compile/internal/ssagen
6016 192
rewrite.go
in src/cmd/compile/internal/ssa
1436 187
loader.go
in src/cmd/link/internal/loader
1834 183
type.go
in src/cmd/compile/internal/types
1583 176
ast.go
in src/go/ast
727 171
rewriteMIPS.go
in src/cmd/compile/internal/ssa
6649 169
rewriteRISCV64.go
in src/cmd/compile/internal/ssa
5971 161
zsyscall_windows.go
in src/syscall
1308 155
rewriteWasm.go
in src/cmd/compile/internal/ssa
4361 152
Files With Long Lines (Top 20)

There are 573 files with lines longer than 120 characters. In total, there are 11743 long lines.

File# lines# units# long lines
zipdata.go
in src/time/tzdata
7099 - 7028
p256_asm_table.go
in src/crypto/elliptic
1378 - 1376
rewriteARM64.go
in src/cmd/compile/internal/ssa
26802 355 154
rewritegeneric.go
in src/cmd/compile/internal/ssa
23022 221 107
zsyscall_windows.go
in src/syscall
1308 155 106
rewriteAMD64.go
in src/cmd/compile/internal/ssa
30733 422 88
avx_optabs.go
in src/cmd/internal/obj/x86
4469 - 80
ssa.go
in src/cmd/compile/internal/ssagen
6016 192 73
rewriteS390X.go
in src/cmd/compile/internal/ssa
15625 274 59
expand_calls.go
in src/cmd/compile/internal/ssa
1436 37 58
zsyscall_aix_ppc64.go
in src/syscall
933 91 55
zsyscall_solaris_amd64.go
in src/syscall
835 83 48
rewrite386.go
in src/cmd/compile/internal/ssa
10880 212 43
zsyscall_openbsd_arm.go
in src/syscall
1191 118 43
zsyscall_openbsd_386.go
in src/syscall
1191 118 42
zsyscall_openbsd_amd64.go
in src/syscall
1191 118 40
zsyscall_openbsd_arm64.go
in src/syscall
1191 118 40
rewritePPC64.go
in src/cmd/compile/internal/ssa
16200 266 38
zsyscall_darwin_arm64.go
in src/syscall
1259 124 38
zsyscall_darwin_amd64.go
in src/syscall
1259 124 38