golang / exp
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 275 files with 49,019 lines of code.
    • 4 very long files (13,732 lines of code)
    • 8 long files (5,741 lines of code)
    • 41 medium size files (13,120 lines of codeclsfd_ftr_w_mp_ins)
    • 66 small files (9,470 lines of code)
    • 156 very small files (6,956 lines of code)
28% | 11% | 26% | 19% | 14%
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
go29% | 12% | 25% | 18% | 13%
c0% | 0% | 49% | 27% | 23%
m0% | 0% | 81% | 0% | 18%
bash0% | 0% | 0% | 96% | 3%
s0% | 0% | 0% | 0% | 100%
h0% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
shiny44% | 13% | 22% | 11% | 8%
cmd48% | 0% | 15% | 23% | 11%
errors0% | 71% | 15% | 7% | 5%
sumdb0% | 0% | 65% | 12% | 21%
shootout0% | 0% | 31% | 33% | 34%
vulndb0% | 0% | 60% | 21% | 18%
vulncheck0% | 0% | 49% | 31% | 19%
winfsnotify0% | 0% | 100% | 0% | 0%
slices0% | 0% | 71% | 20% | 8%
jsonrpc20% | 0% | 33% | 44% | 21%
apidiff0% | 0% | 37% | 45% | 17%
event0% | 0% | 11% | 57% | 30%
rand0% | 0% | 0% | 82% | 17%
ebnf0% | 0% | 0% | 100% | 0%
internal0% | 0% | 0% | 66% | 33%
utf8string0% | 0% | 0% | 100% | 0%
io0% | 0% | 0% | 32% | 67%
mmap0% | 0% | 0% | 0% | 100%
ebnflint0% | 0% | 0% | 0% | 100%
maps0% | 0% | 0% | 0% | 100%
constraints0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
data.go
in shiny/materialdesign/icons
10003 -
table.go
in shiny/driver/internal/x11key
1573 -
main.go
in shiny/example/icongallery
1125 8
gorelease.go
in cmd/gorelease
1031 27
scan.go
in errors/fmt
920 55
print.go
in errors/fmt
897 45
upgrade.go
in shiny/iconvg
875 18
table.go
in shiny/materialdesign/colornames
776 -
decode.go
in shiny/iconvg
614 16
screen.go
in shiny/driver/x11driver
587 17
caret.go
in shiny/text
568 23
flex.go
in shiny/widget/flex
504 12
cocoa.go
in shiny/driver/gldriver
500 28
winfsnotify.go
in winfsnotify
499 19
gen.go
in shiny/materialdesign/icons
495 10
text.go
in shiny/text
490 42
encode.go
in shiny/iconvg
469 40
rasterizer.go
in shiny/iconvg
462 40
meteor-contest.go
in shootout
458 26
client.go
in sumdb/internal/sumweb
421 19
meteor-contest.c
in shootout
417 25
format.go
in errors/fmt
407 17
win32.go
in shiny/driver/internal/win32
403 26
tlog.go
in sumdb/internal/tlog
383 26
note.go
in sumdb/internal/note
349 21
report.go
in cmd/gorelease
336 11
key.go
in shiny/driver/internal/win32
335 3
conn.go
in jsonrpc2
331 18
main.go
in shiny/example/fluid
325 10
tile.go
in sumdb/internal/tlog
292 12
x11.c
in shiny/driver/gldriver
290 -
exe.go
in vulndb/internal/binscan
282 14
buffer.go
in shiny/iconvg
282 25
x11key.go
in shiny/driver/internal/x11key
280 3
win32.go
in shiny/driver/gldriver
276 15
vulncheck.go
in vulncheck
267 8
source.go
in vulncheck
265 13
node.go
in shiny/widget/node
263 37
board.go
in shiny/example/goban
261 17
exe.go
in vulncheck/internal/binscan
261 11
compatibility.go
in apidiff
257 17
zsyscall_windows.go
in shiny/driver/internal/win32
252 25
cocoa.m
in shiny/driver/gldriver
243 8
zsortordered.go
in slices
240 10
zsortfunc.go
in slices
239 10
window.go
in shiny/driver/gldriver
236 15
detect_callgraph.go
in vulndb/internal/audit
231 12
chameneosredux.c
in shootout
228 8
detect.go
in vulndb/internal/audit
227 13
window.go
in shiny/driver/windriver
222 14
Files With Most Units (Top 20)
File# lines# units
scan.go
in errors/fmt
920 55
print.go
in errors/fmt
897 45
text.go
in shiny/text
490 42
rasterizer.go
in shiny/iconvg
462 40
encode.go
in shiny/iconvg
469 40
rand.go
in rand
181 38
node.go
in shiny/widget/node
263 37
keys.go
in event/keys
90 33
cocoa.go
in shiny/driver/gldriver
500 28
gorelease.go
in cmd/gorelease
1031 27
meteor-contest.go
in shootout
458 26
tlog.go
in sumdb/internal/tlog
383 26
win32.go
in shiny/driver/internal/win32
403 26
meteor-contest.c
in shootout
417 25
label.go
in event
194 25
buffer.go
in shiny/iconvg
282 25
zsyscall_windows.go
in shiny/driver/internal/win32
252 25
caret.go
in shiny/text
568 23
note.go
in sumdb/internal/note
349 21
theme.go
in shiny/widget/theme
135 21
Files With Long Lines (Top 20)

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

File# lines# units# long lines
gorelease.go
in cmd/gorelease
1031 27 27
main.go
in shiny/example/textedit
86 2 14
zsyscall_windows.go
in shiny/driver/internal/win32
252 25 10
zsyscall_windows.go
in shiny/driver/windriver
192 15 9
report.go
in cmd/gorelease
336 11 5
encode.go
in shiny/iconvg
469 40 4
window.go
in shiny/driver/x11driver
121 12 4
window.go
in shiny/driver/gldriver
236 15 4
window.go
in shiny/driver/windriver
222 14 4
window.go
in shiny/driver/mtldriver
87 9 3
detect.go
in vulndb/internal/audit
227 13 2
tile.go
in sumdb/internal/tlog
292 12 2
note.go
in sumdb/internal/note
349 21 2
upgrade.go
in shiny/iconvg
875 18 2
screen.go
in shiny/driver/x11driver
587 17 2
buffer_fallback.go
in shiny/driver/x11driver
90 8 2
cocoa.m
in shiny/driver/gldriver
243 8 2
drawer.go
in shiny/driver/internal/drawer
21 2 2
source.go
in vulncheck
265 13 2
vulncheck.go
in vulncheck
267 8 2