firecracker-microvm / firecracker-containerd
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 55 files with 9,991 lines of code.
    • 2 very long files (2,318 lines of code)
    • 4 long files (2,836 lines of code)
    • 8 medium size files (2,315 lines of codeclsfd_ftr_w_mp_ins)
    • 10 small files (1,349 lines of code)
    • 31 very small files (1,173 lines of code)
23% | 28% | 23% | 13% | 11%
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
go24% | 29% | 24% | 10% | 11%
proto0% | 0% | 0% | 80% | 19%
toml0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
runtime53% | 21% | 12% | 4% | 7%
proto47% | 33% | 0% | 13% | 4%
proto/service0% | 84% | 12% | 0% | 3%
agent0% | 0% | 78% | 14% | 6%
internal/vm0% | 0% | 57% | 35% | 7%
firecracker-control0% | 0% | 82% | 0% | 17%
internal/debug0% | 0% | 93% | 0% | 6%
internal0% | 0% | 0% | 49% | 50%
internal/cmd0% | 0% | 0% | 100% | 0%
eventbridge0% | 0% | 0% | 100% | 0%
config0% | 0% | 0% | 0% | 100%
internal/bundle0% | 0% | 0% | 0% | 100%
runtime/cpuset0% | 0% | 0% | 0% | 100%
runtime/firecrackeroci0% | 0% | 0% | 0% | 100%
firecracker-control/cmd0% | 0% | 0% | 0% | 100%
firecracker-control/client0% | 0% | 0% | 0% | 100%
internal/shim0% | 0% | 0% | 0% | 100%
internal/event0% | 0% | 0% | 0% | 100%
client0% | 0% | 0% | 0% | 100%
tools/docker0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
service.go
in runtime
1273 56
firecracker.pb.go
in proto
1045 229
ioproxy.pb.go
in proto/service/ioproxy/ttrpc
896 53
types.pb.go
in proto
734 156
drivemount.pb.go
in proto/service/drivemount/ttrpc
688 39
runc_jailer.go
in runtime
518 27
local.go
in firecracker-control
446 20
service.go
in agent
440 23
drive_handler.go
in runtime
287 9
task.go
in internal/vm
245 12
fccontrol.pb.go
in proto/service/fccontrol/ttrpc
234 15
vsock.go
in internal/vm
231 17
debug.go
in internal/debug
218 10
drive_handler.go
in agent
214 12
ioproxy.go
in internal/vm
179 8
proto
firecracker.proto
in proto
158 -
main.go
in internal/cmd/test-bridged-tap
145 5
proto
types.proto
in proto
144 -
psutil.go
in internal
139 4
eventbridge.go
in eventbridge
131 7
main.go
in agent
123 2
helpers.go
in runtime
117 5
dir.go
in internal/vm
112 20
fsutil.go
in internal
101 4
network_test_utils.go
in internal
99 5
noop_jailer.go
in runtime
95 7
service.go
in firecracker-control
92 14
events.pb.go
in proto
91 22
config.go
in config
75 1
bundle.go
in internal/bundle
73 11
cpuset_builder.go
in runtime/cpuset
68 9
jailer.go
in runtime
65 1
common.go
in internal
64 3
cpu_template.go
in internal
47 3
ioproxy_handler.go
in agent
43 2
main.go
in firecracker-control/cmd/containerd
40 2
testutils.go
in internal
36 3
agent.go
in internal/vm
34 5
proto
fccontrol.proto
in proto/service/fccontrol
30 -
client.go
in firecracker-control/client
28 2
fifo.go
in internal/vm
25 3
main.go
in runtime
23 2
network.go
in runtime/firecrackeroci
22 1
proto
ioproxy.proto
in proto/service/ioproxy
21 -
annotation.go
in runtime/firecrackeroci
18 1
proto
drivemount.proto
in proto/service/drivemount
16 -
error.go
in internal/debug
15 2
shim.go
in internal/shim
12 1
exchange.go
in internal/event
12 1
error.go
in agent
8 1
Files With Most Units (Top 20)
File# lines# units
firecracker.pb.go
in proto
1045 229
types.pb.go
in proto
734 156
service.go
in runtime
1273 56
ioproxy.pb.go
in proto/service/ioproxy/ttrpc
896 53
drivemount.pb.go
in proto/service/drivemount/ttrpc
688 39
runc_jailer.go
in runtime
518 27
service.go
in agent
440 23
events.pb.go
in proto
91 22
dir.go
in internal/vm
112 20
local.go
in firecracker-control
446 20
vsock.go
in internal/vm
231 17
fccontrol.pb.go
in proto/service/fccontrol/ttrpc
234 15
service.go
in firecracker-control
92 14
drive_handler.go
in agent
214 12
task.go
in internal/vm
245 12
bundle.go
in internal/bundle
73 11
debug.go
in internal/debug
218 10
cpuset_builder.go
in runtime/cpuset
68 9
drive_handler.go
in runtime
287 9
ioproxy.go
in internal/vm
179 8
Files With Long Lines (Top 14)

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

File# lines# units# long lines
firecracker.pb.go
in proto
1045 229 29
types.pb.go
in proto
734 156 25
service.go
in runtime
1273 56 19
fccontrol.pb.go
in proto/service/fccontrol/ttrpc
234 15 7
local.go
in firecracker-control
446 20 6
runc_jailer.go
in runtime
518 27 4
ioproxy.pb.go
in proto/service/ioproxy/ttrpc
896 53 3
service.go
in agent
440 23 3
service.go
in firecracker-control
92 14 3
drivemount.pb.go
in proto/service/drivemount/ttrpc
688 39 2
helpers.go
in runtime
117 5 2
proto
firecracker.proto
in proto
158 - 1
noop_jailer.go
in runtime
95 7 1
task.go
in internal/vm
245 12 1