golang / gofrontend
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 2,030 files with 426,816 lines of code.
    • 57 very long files (152,257 lines of code)
    • 131 long files (89,676 lines of code)
    • 318 medium size files (100,647 lines of codeclsfd_ftr_w_mp_ins)
    • 328 small files (46,887 lines of code)
    • 1,196 very small files (37,349 lines of code)
35% | 21% | 23% | 10% | 8%
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
go26% | 23% | 26% | 12% | 10%
cc91% | 6% | 1% | <1% | <1%
h76% | 0% | 19% | 0% | 3%
c0% | 31% | 33% | 18% | 16%
in0% | 0% | 100% | 0% | 0%
awk0% | 0% | 85% | 0% | 14%
S0% | 0% | 0% | 0% | 100%
bash0% | 0% | 0% | 0% | 100%
f900% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
go89% | 5% | 3% | <1% | <1%
libgo/go/golang.org30% | 16% | 27% | 12% | 12%
libgo/go/net32% | 16% | 27% | 14% | 8%
libgo/go/cmd29% | 24% | 22% | 13% | 9%
libgo/go/crypto34% | 23% | 21% | 13% | 6%
libgo/go/time74% | 7% | 7% | 5% | 4%
libgo/go/unicode90% | 0% | 7% | 0% | 2%
libgo/go/go24% | 28% | 29% | 12% | 4%
libgo/go/runtime17% | 24% | 34% | 11% | 11%
libgo/go/debug37% | 28% | 22% | 7% | 4%
libgo/go/reflect87% | 0% | 0% | 3% | 9%
libgo/go/html44% | 12% | 21% | 18% | 4%
libgo/go/database70% | 0% | 14% | 14% | 0%
libgo/go/encoding11% | 49% | 29% | 8% | 1%
libgo/go/regexp32% | 18% | 43% | 2% | 2%
libgo/go/testing32% | 32% | 13% | 8% | 12%
libgo/go/math9% | 14% | 30% | 22% | 22%
libgo/go/internal0% | 32% | 29% | 16% | 21%
libgo/go/image0% | 53% | 31% | 12% | 2%
libgo/go/text0% | 85% | 7% | 3% | 3%
libgo/runtime0% | 38% | 28% | 17% | 15%
libgo/go/strconv0% | 48% | 41% | 6% | 2%
libgo/go/fmt0% | 79% | 19% | 0% | 1%
libgo/go/compress0% | 43% | 20% | 29% | 6%
libgo/go/archive0% | 34% | 54% | 7% | 3%
libgo/go/index0% | 58% | 36% | 0% | 4%
libgo/go/bytes0% | 68% | 21% | 9% | 0%
libgo/go/strings0% | 53% | 28% | 8% | 9%
libgo/go/flag0% | 100% | 0% | 0% | 0%
libgo/go/bufio0% | 68% | 31% | 0% | 0%
libgo/go/syscall0% | 0% | 45% | 21% | 33%
libgo/go/os0% | 0% | 37% | 18% | 44%
libgo/go/mime0% | 0% | 51% | 37% | 11%
libgo0% | 0% | 94% | 0% | 5%
libgo/go/path0% | 0% | 48% | 42% | 9%
libgo/go/sort0% | 0% | 77% | 0% | 22%
libgo/testsuite0% | 0% | 100% | 0% | 0%
libgo/go/sync0% | 0% | 34% | 42% | 23%
libgo/go/log0% | 0% | 89% | 0% | 10%
libgo/go/io0% | 0% | 31% | 25% | 43%
libgo/go/hash0% | 0% | 23% | 36% | 40%
libgo/go/context0% | 0% | 100% | 0% | 0%
libgo/go/expvar0% | 0% | 100% | 0% | 0%
libgo/go/embed0% | 0% | 0% | 100% | 0%
libgo/misc/cgo0% | 0% | 0% | 46% | 53%
libgo/go/container0% | 0% | 0% | 47% | 52%
libgo/go/plugin0% | 0% | 0% | 0% | 100%
libgo/go/errors0% | 0% | 0% | 0% | 100%
libgo/go/builtin0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
expressions.cc
in go
15932 -
types.cc
in go
9753 -
tables.go
in libgo/go/unicode
7783 -
h2_bundle.go
in libgo/go/net/http
7616 453
gogo.cc
in go
7217 -
zipdata.go
in libgo/go/time/tzdata
7072 -
statements.cc
in go
5452 -
root_ios.go
in libgo/go/crypto/x509
4864 2
parse.cc
in go
4770 -
proc.go
in libgo/go/runtime
3586 200
expressions.h
in go
2887 -
elf.go
in libgo/go/debug/elf
2863 70
escape.cc
in go
2808 -
lex.cc
in go
2674 -
gcc.go
in libgo/go/cmd/cgo
2435 61
exec.go
in libgo/go/cmd/go/internal/work
2396 88
entity.go
in libgo/go/html
2241 1
types.h
in go
2239 3
gogo.h
in go
2197 1
sql.go
in libgo/go/database/sql
2122 151
server.go
in libgo/go/net/http
2108 146
message.go
in libgo/go/golang.org/x/net/dns/dnsmessage
2045 163
parser.go
in libgo/go/go/parser
1992 94
transport.go
in libgo/go/net/http
1944 101
pkg.go
in libgo/go/cmd/go/internal/load
1917 80
value.go
in libgo/go/reflect
1834 136
type.go
in libgo/go/reflect
1747 85
xml.go
in libgo/go/encoding/xml
1671 46
tables13.0.0.go
in libgo/go/golang.org/x/text/unicode/bidi
1645 6
tables12.0.0.go
in libgo/go/golang.org/x/text/unicode/bidi
1621 6
tables11.0.0.go
in libgo/go/golang.org/x/text/unicode/bidi
1591 6
handshake_messages.go
in libgo/go/crypto/tls
1544 47
tables10.0.0.go
in libgo/go/golang.org/x/text/unicode/bidi
1525 6
x509.go
in libgo/go/crypto/x509
1522 49
tables9.0.0.go
in libgo/go/golang.org/x/text/unicode/bidi
1497 6
out.go
in libgo/go/cmd/cgo
1476 33
p256_asm_table.go
in libgo/go/crypto/elliptic
1465 -
edwards25519.go
in libgo/go/golang.org/x/crypto/ed25519/internal/edwards25519
1463 46
parse.go
in libgo/go/regexp/syntax
1441 57
const.go
in libgo/go/golang.org/x/crypto/ed25519/internal/edwards25519
1401 -
build.go
in libgo/go/go/build
1393 48
statements.h
in go
1376 1
nodes.go
in libgo/go/go/printer
1367 45
import.cc
in go
1327 -
file.go
in libgo/go/debug/elf
1239 38
mbitmap.go
in libgo/go/runtime
1196 44
format.go
in libgo/go/time
1191 29
get.go
in libgo/go/cmd/go/internal/modget
1183 38
load.go
in libgo/go/cmd/go/internal/modload
1169 35
testing.go
in libgo/go/testing
1128 68
Files With Most Units (Top 20)
File# lines# units
h2_bundle.go
in libgo/go/net/http
7616 453
proc.go
in libgo/go/runtime
3586 200
ast.go
in libgo/go/go/ast
704 168
message.go
in libgo/go/golang.org/x/net/dns/dnsmessage
2045 163
sql.go
in libgo/go/database/sql
2122 151
server.go
in libgo/go/net/http
2108 146
value.go
in libgo/go/reflect
1834 136
image.go
in libgo/go/image
944 119
node.go
in libgo/go/text/template/parse
752 114
type.go
in libgo/go/go/types
599 114
flag.go
in libgo/go/flag
626 110
transport.go
in libgo/go/net/http
1944 101
value.go
in libgo/go/go/constant
1014 94
parser.go
in libgo/go/go/parser
1992 94
exec.go
in libgo/go/cmd/go/internal/work
2396 88
type.go
in libgo/go/reflect
1747 85
time.go
in libgo/go/time
868 80
pkg.go
in libgo/go/cmd/go/internal/load
1917 80
regexp.go
in libgo/go/regexp
824 72
elf.go
in libgo/go/debug/elf
2863 70
Files With Long Lines (Top 20)

There are 301 files with lines longer than 120 characters. In total, there are 10046 long lines.

File# lines# units# long lines
zipdata.go
in libgo/go/time/tzdata
7072 - 7001
p256_asm_table.go
in libgo/go/crypto/elliptic
1465 - 1376
const.go
in libgo/go/golang.org/x/crypto/ed25519/internal/edwards25519
1401 - 761
zsyscall_windows.go
in libgo/go/internal/syscall/windows
282 30 33
exec.go
in libgo/go/cmd/go/internal/work
2396 88 23
pkg.go
in libgo/go/cmd/go/internal/load
1917 80 20
x509.go
in libgo/go/crypto/x509
1522 49 20
load.go
in libgo/go/cmd/go/internal/modload
1169 35 16
lockrank.go
in libgo/go/runtime
168 1 15
h2_bundle.go
in libgo/go/net/http
7616 453 15
asmdecl.go
in libgo/go/golang.org/x/tools/go/analysis/passes/asmdecl
670 8 13
decode.go
in libgo/go/encoding/json
957 30 13
coderepo.go
in libgo/go/cmd/go/internal/modfetch
728 31 12
query.go
in libgo/go/cmd/go/internal/modload
782 31 12
get.go
in libgo/go/cmd/go/internal/modget
1183 38 11
key_agreement.go
in libgo/go/crypto/tls
277 11 11
parser.go
in libgo/go/crypto/x509
828 19 10
verify.go
in libgo/go/crypto/x509
745 24 10
proc.go
in libgo/go/runtime
3586 200 10
server.go
in libgo/go/net/http
2108 146 10