firecracker-microvm / firecracker-containerd
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 11% duplication:
    • 7,495 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 847 duplicated lines
  • 170 duplicates
system11% (847 lines)
Duplication per Extension
go11% (835 lines)
proto3% (12 lines)
Duplication per Component (primary)
proto/service47% (685 lines)
agent12% (78 lines)
proto1% (34 lines)
internal/vm3% (22 lines)
runtime<1% (14 lines)
internal/debug8% (14 lines)
tools/docker0% (0 lines)
config0% (0 lines)
runtime/cpuset0% (0 lines)
runtime/firecrackeroci0% (0 lines)
client0% (0 lines)
eventbridge0% (0 lines)
internal0% (0 lines)
internal/bundle0% (0 lines)
internal/shim0% (0 lines)
internal/event0% (0 lines)
internal/cmd0% (0 lines)
firecracker-control0% (0 lines)
firecracker-control/client0% (0 lines)
firecracker-control/cmd0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 170 duplicates...
Size#FoldersFilesLinesCode
49 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
521:585 (7%)
713:777 (7%)
view
25 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
404:436 (4%)
586:618 (4%)
view
19 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
558:582 (2%)
718:742 (2%)
view
19 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
526:550 (2%)
558:582 (2%)
view
19 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
526:550 (2%)
750:774 (2%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
473:497 (3%)
505:529 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
473:497 (3%)
591:615 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
505:529 (3%)
591:615 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
441:465 (3%)
473:497 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
409:433 (3%)
505:529 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
441:465 (3%)
591:615 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
409:433 (3%)
473:497 (3%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
441:465 (3%)
505:529 (3%)
view
19 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
718:742 (2%)
750:774 (2%)
view
19 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
409:433 (3%)
441:465 (3%)
view
18 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
494:515 (2%)
612:633 (2%)
view
18 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
377:398 (3%)
559:580 (3%)
view
18 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
612:633 (2%)
686:707 (2%)
view
18 x 2 proto/service/ioproxy/ttrpc
proto/service/ioproxy/ttrpc
ioproxy.pb.go
ioproxy.pb.go
494:515 (2%)
686:707 (2%)
view
17 x 2 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
drivemount.pb.go
drivemount.pb.go
532:556 (3%)
618:642 (3%)
view
Duplicated Units
The list of top 3 duplicated units.
See data for all 3 unit duplicates...
Size#FoldersFilesLinesCode
8 x 3 proto/service/drivemount/ttrpc
proto/service/drivemount/ttrpc
proto/service/ioproxy/ttrpc
drivemount.pb.go
drivemount.pb.go
ioproxy.pb.go
139:147 
196:204 
182:190 
view
7 x 2 proto/service/drivemount/ttrpc
proto/service/ioproxy/ttrpc
drivemount.pb.go
ioproxy.pb.go
318:325 
435:442 
view
6 x 4 proto/service/fccontrol/ttrpc
proto/service/fccontrol/ttrpc
proto/service/drivemount/ttrpc
proto/service/ioproxy/ttrpc
fccontrol.pb.go
fccontrol.pb.go
drivemount.pb.go
ioproxy.pb.go
178:184 
186:192 
361:367 
486:492 
view