firecracker-microvm / firecracker
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 241 files with 54,149 lines of code.
    • 7 very long files (8,389 lines of code)
    • 28 long files (19,234 lines of code)
    • 49 medium size files (16,049 lines of codeclsfd_ftr_w_mp_ins)
    • 40 small files (5,978 lines of code)
    • 117 very small files (4,499 lines of code)
15% | 35% | 29% | 11% | 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
rs15% | 34% | 30% | 11% | 7%
yaml0% | 100% | 0% | 0% | 0%
toml0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
asc0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/devices29% | 24% | 28% | 10% | 6%
src/vmm21% | 38% | 24% | 9% | 5%
src/seccompiler41% | 15% | 40% | 0% | 2%
src/dumbo25% | 39% | 19% | 7% | 6%
src/api_server0% | 64% | 5% | 19% | 9%
src/jailer0% | 95% | 0% | 0% | 4%
src/net_gen0% | 85% | 0% | 8% | 6%
src/arch_gen0% | 98% | 0% | 0% | 1%
src/utils0% | 54% | 0% | 20% | 24%
src/mmds0% | 31% | 61% | 5% | 1%
src/logger0% | 48% | 38% | 0% | 12%
src/rate_limiter0% | 73% | 0% | 24% | 2%
src/arch0% | 0% | 52% | 25% | 22%
src/cpuid0% | 0% | 72% | 25% | 2%
src/firecracker0% | 0% | 85% | 0% | 14%
src/virtio_gen0% | 0% | 87% | 0% | 12%
src/snapshot0% | 0% | 74% | 22% | 2%
src/io_uring0% | 0% | 42% | 27% | 30%
src/vm-memory0% | 0% | 97% | 0% | 2%
tools/parse_baselines0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
tools/devctr0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
device.rs
in src/devices/src/virtio/net
1360 59
backend.rs
in src/seccompiler/src
1355 48
builder.rs
in src/vmm/src
1265 36
device.rs
in src/devices/src/virtio/block
1254 40
connection.rs
in src/dumbo/src/tcp
1103 37
muxer.rs
in src/devices/src/virtio/vsock/unix
1046 45
resources.rs
in src/vmm/src
1006 22
parsed_request.rs
in src/api_server/src
945 39
env.rs
in src/jailer/src
917 26
mod.rs
in src/vmm/src/vstate/vcpu
894 21
firecracker.yaml
in src/api_server/swagger
888 -
connection.rs
in src/devices/src/virtio/vsock/csm
845 41
inn.rs
in src/net_gen/src
838 26
arg_parser.rs
in src/utils/src
836 20
mpspec.rs
in src/arch_gen/src/x86
827 16
device.rs
in src/devices/src/virtio/balloon
815 29
rpc_interface.rs
in src/vmm/src
798 18
request.rs
in src/devices/src/virtio/block
766 30
main.rs
in src/jailer/src
730 8
mmio.rs
in src/vmm/src/device_manager
685 28
queue.rs
in src/devices/src/virtio
628 16
lib.rs
in src/mmds/src
628 17
lib.rs
in src/vmm/src
627 10
persist.rs
in src/vmm/src
614 15
if_tun.rs
in src/net_gen/src
594 17
tcp.rs
in src/dumbo/src/pdu
578 4
handler.rs
in src/dumbo/src/tcp
575 14
lib.rs
in src/api_server/src
553 17
ipv4.rs
in src/dumbo/src/pdu
539 6
msr_index.rs
in src/arch_gen/src/x86
538 -
cgroup.rs
in src/jailer/src
525 22
metrics.rs
in src/logger/src
521 19
seccompiler_bin.rs
in src/seccompiler/src
513 9
persist.rs
in src/vmm/src/device_manager
510 17
lib.rs
in src/rate_limiter/src
507 24
drive.rs
in src/vmm/src/vmm_config
493 14
virtio_blk.rs
in src/virtio_gen/src
482 6
x86_64.rs
in src/vmm/src/vstate/vcpu
470 9
fdt.rs
in src/arch/src/aarch64
461 20
compiler.rs
in src/seccompiler/src
452 13
data_store.rs
in src/mmds/src
449 14
bit_helper.rs
in src/cpuid/src
447 22
endpoint.rs
in src/dumbo/src/tcp
438 5
lib.rs
in src/snapshot/src
425 17
main.rs
in src/firecracker/src
423 8
lib.rs
in src/io_uring/src
418 13
logger.rs
in src/logger/src
414 27
ns.rs
in src/mmds/src
409 13
arp.rs
in src/dumbo/src/pdu
399 4
event_handler.rs
in src/devices/src/virtio/vsock
394 12
Files With Most Units (Top 20)
File# lines# units
device.rs
in src/devices/src/virtio/net
1360 59
backend.rs
in src/seccompiler/src
1355 48
muxer.rs
in src/devices/src/virtio/vsock/unix
1046 45
connection.rs
in src/devices/src/virtio/vsock/csm
845 41
device.rs
in src/devices/src/virtio/block
1254 40
parsed_request.rs
in src/api_server/src
945 39
connection.rs
in src/dumbo/src/tcp
1103 37
builder.rs
in src/vmm/src
1265 36
request.rs
in src/devices/src/virtio/block
766 30
device.rs
in src/devices/src/virtio/balloon
815 29
mmio.rs
in src/vmm/src/device_manager
685 28
logger.rs
in src/logger/src
414 27
inn.rs
in src/net_gen/src
838 26
env.rs
in src/jailer/src
917 26
lib.rs
in src/rate_limiter/src
507 24
bit_helper.rs
in src/cpuid/src
447 22
resources.rs
in src/vmm/src
1006 22
cgroup.rs
in src/jailer/src
525 22
token.rs
in src/mmds/src
386 21
mod.rs
in src/vmm/src/vstate/vcpu
894 21
Files With Long Lines (Top 11)

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

File# lines# units# long lines
firecracker.yaml
in src/api_server/swagger
888 - 4
aarch64.rs
in src/vmm/src/vstate/vcpu
219 8 4
seccompiler_bin.rs
in src/seccompiler/src
513 9 1
Cargo.toml
in src/seccompiler
18 - 1
serial.rs
in src/devices/src/legacy
307 18 1
main.rs
in src/firecracker/src
423 8 1
Cargo.toml
in src/firecracker
21 - 1
builder.rs
in src/vmm/src
1265 36 1
cgroup.rs
in src/jailer/src
525 22 1
Cargo.toml
in src/jailer
13 - 1
Cargo.toml
in root
10 - 1