microsoft / hcsshim
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
  • 26% duplication:
    • 59,008 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 15,473 duplicated lines
  • 52,674 duplicates
system26% (15,473 lines)
Duplication per Extension
go26% (15,473 lines)
Duplication per Component (primary)
internal22% (7,552 lines)
pkg52% (5,070 lines)
cmd23% (2,325 lines)
hcn14% (319 lines)
computestorage23% (115 lines)
ROOT5% (66 lines)
ext41% (26 lines)
init0% (0 lines)
osversion0% (0 lines)
scripts0% (0 lines)
vsockexec0% (0 lines)

Duplication Between Components (50+ lines)

G internal internal pkg pkg internal--pkg 7618 ROOT ROOT internal--ROOT 117 cmd cmd cmd--internal 4260 cmd--pkg 3264 hcn hcn hcn--internal 177 computestorage computestorage computestorage--internal 117

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 52,674 duplicates...
Size#FoldersFilesLinesCode
115 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
4985:5141 (1%)
5225:5381 (1%)
view
113 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
6990:7139 (1%)
7389:7538 (1%)
view
100 x 2 internal/ncproxyttrpc
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
1185:1319 (10%)
8979:9113 (1%)
view
91 x 2 internal/computeagent
internal/computeagent
computeagent.pb.go
computeagent.pb.go
1831:1955 (4%)
2251:2375 (4%)
view
73 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5225:5321 (1%)
5465:5561 (1%)
view
73 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
4985:5081 (1%)
5465:5561 (1%)
view
63 x 2 internal/computeagent
internal/computeagent
computeagent.pb.go
computeagent.pb.go
1385:1466 (3%)
1640:1721 (3%)
view
51 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
6836:6902 (<1%)
8386:8452 (<1%)
view
48 x 2 internal/uvm
internal/vm/hcs
stats.go
stats.go
22:96 (57%)
23:99 (57%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5323:5381 (<1%)
6624:6682 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5671:5729 (<1%)
8660:8718 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5883:5939 (<1%)
8020:8076 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5883:5939 (<1%)
8160:8216 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5883:5939 (<1%)
8300:8356 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5883:5939 (<1%)
8540:8596 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
8020:8076 (<1%)
8160:8216 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
8020:8076 (<1%)
8300:8356 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
8020:8076 (<1%)
8540:8596 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
6189:6245 (<1%)
7762:7818 (<1%)
view
41 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
8300:8356 (<1%)
8540:8596 (<1%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 33 unit duplicates...
Size#FoldersFilesLinesCode
184 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
4957:5142 
5197:5382 
view
152 x 2 internal/computeagent
internal/computeagent
computeagent.pb.go
computeagent.pb.go
1803:1956 
2223:2376 
view
104 x 2 internal/ncproxyttrpc
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
1210:1314 
9004:9108 
view
84 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
5855:5940 
7992:8077 
view
84 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
6161:6246 
7734:7819 
view
52 x 2 internal/computeagent
internal/computeagent
computeagent.pb.go
computeagent.pb.go
1749:1802 
1957:2010 
view
52 x 3 internal/ncproxyttrpc
internal/ncproxyttrpc
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
networkconfigproxy.pb.go
857:910 
997:1050 
5143:5196 
view
52 x 2 internal/shimdiag
internal/shimdiag
shimdiag.pb.go
shimdiag.pb.go
1317:1370 
1627:1680 
view
41 x 2 internal/uvm
internal/vm/hcs
stats.go
stats.go
22:67 
23:70 
view
26 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
3710:3736 
3750:3776 
view
22 x 2 internal/computeagent
internal/computeagent
computeagent.pb.go
computeagent.pb.go
979:1001 
1051:1073 
view
19 x 2 internal/uvm
internal/vm/hcs
stats.go
stats.go
73:97 
76:100 
view
17 x 2 hcn
internal/hns
zsyscall_windows.go
zsyscall_windows.go
94:111 
45:62 
view
16 x 2 internal/hns
internal/hns
hnsendpoint.go
hnsendpoint.go
189:207 
210:228 
view
15 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
2704:2719 
3373:3388 
view
15 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
2795:2810 
3292:3307 
view
14 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
3881:3895 
4269:4283 
view
14 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
3933:3947 
4221:4235 
view
13 x 2 pkg/ncproxy/ncproxygrpc/v1
pkg/ncproxy/ncproxygrpc/v1
networkconfigproxy.pb.go
networkconfigproxy.pb.go
3842:3855 
4030:4043 
view
12 x 2 hcn
internal/hns
zsyscall_windows.go
zsyscall_windows.go
113:125 
64:76 
view