microsoft / go-winio
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
  • 32% duplication:
    • 6,130 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,974 duplicated lines
  • 29 duplicates
system32% (1,974 lines)
Duplication per Extension
go32% (1,974 lines)
Duplication per Component (primary)
pkg/etw45% (681 lines)
vhd72% (619 lines)
pkg/security83% (592 lines)
ROOT3% (47 lines)
backuptar6% (19 lines)
pkg/process19% (16 lines)
pkg/etwlogrus0% (0 lines)
pkg/fs0% (0 lines)
pkg/guid0% (0 lines)
tools/etw-provider-gen0% (0 lines)
wim0% (0 lines)
wim/lzx0% (0 lines)
wim/validate0% (0 lines)

Duplication Between Components (50+ lines)

G pkg/security pkg/security vhd vhd pkg/security--vhd 1182 pkg/etw pkg/etw pkg/etw--pkg/security 1178 pkg/etw--vhd 1176

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 29 duplicates...
Size#FoldersFilesLinesCode
575 x 2 pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
73:958 (100%)
73:958 (100%)
view
339 x 2 pkg/etw
vhd
mksyscall_windows.go
mksyscall_windows.go
71:595 (57%)
73:597 (58%)
view
339 x 2 pkg/etw
pkg/security
mksyscall_windows.go
mksyscall_windows.go
71:595 (57%)
73:597 (58%)
view
186 x 2 pkg/etw
pkg/security
mksyscall_windows.go
mksyscall_windows.go
661:930 (31%)
649:918 (32%)
view
186 x 2 pkg/etw
vhd
mksyscall_windows.go
mksyscall_windows.go
661:930 (31%)
649:918 (32%)
view
25 x 2 pkg/etw
vhd
mksyscall_windows.go
mksyscall_windows.go
933:970 (4%)
921:958 (4%)
view
25 x 2 pkg/etw
pkg/security
mksyscall_windows.go
mksyscall_windows.go
933:970 (4%)
921:958 (4%)
view
22 x 2 pkg/etw
vhd
mksyscall_windows.go
mksyscall_windows.go
606:645 (3%)
607:646 (3%)
view
22 x 2 pkg/etw
pkg/security
mksyscall_windows.go
mksyscall_windows.go
606:645 (3%)
607:646 (3%)
view
20 x 2 pkg/etw/sample
pkg/etw/sample
sample.go
sample.go
64:83 (27%)
88:107 (27%)
view
17 x 2 pkg/etw
ROOT
zsyscall_windows.go
zsyscall_windows.go
12:41 (29%)
12:41 (6%)
view
17 x 2 pkg/etw
pkg/security
zsyscall_windows.go
zsyscall_windows.go
12:41 (29%)
12:41 (47%)
view
17 x 2 pkg/security
ROOT
zsyscall_windows.go
zsyscall_windows.go
12:41 (47%)
12:41 (6%)
view
16 x 2 pkg/security
vhd
zsyscall_windows.go
zvhd_windows.go
12:40 (44%)
12:40 (26%)
view
16 x 2 pkg/process
pkg/security
zsyscall_windows.go
zsyscall_windows.go
12:40 (44%)
12:40 (44%)
view
16 x 2 pkg/etw
vhd
zsyscall_windows.go
zvhd_windows.go
12:40 (28%)
12:40 (26%)
view
16 x 2 vhd
ROOT
zvhd_windows.go
zsyscall_windows.go
12:40 (26%)
12:40 (5%)
view
16 x 2 pkg/process
ROOT
zsyscall_windows.go
zsyscall_windows.go
12:40 (44%)
12:40 (5%)
view
16 x 2 pkg/etw
pkg/process
zsyscall_windows.go
zsyscall_windows.go
12:40 (28%)
12:40 (44%)
view
16 x 2 pkg/process
vhd
zsyscall_windows.go
zvhd_windows.go
12:40 (44%)
12:40 (26%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 33 unit duplicates...
Size#FoldersFilesLinesCode
70 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
411:485 
413:487 
413:487 
view
55 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
782:838 
770:826 
770:826 
view
47 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
707:758 
695:746 
695:746 
view
27 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
846:876 
834:864 
834:864 
view
26 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
319:345 
321:347 
321:347 
view
24 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
361:385 
363:387 
363:387 
view
19 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
194:213 
196:215 
196:215 
view
18 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
761:779 
749:767 
749:767 
view
17 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
140:157 
142:159 
142:159 
view
17 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
390:408 
392:410 
392:410 
view
16 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
530:546 
532:548 
532:548 
view
15 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
674:689 
662:677 
662:677 
view
13 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
292:305 
294:307 
294:307 
view
13 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
583:596 
585:598 
585:598 
view
12 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
692:704 
680:692 
680:692 
view
11 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
160:171 
162:173 
162:173 
view
11 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
908:919 
896:907 
896:907 
view
10 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
570:580 
572:582 
572:582 
view
9 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
231:240 
233:242 
233:242 
view
9 x 3 pkg/etw
pkg/security
vhd
mksyscall_windows.go
mksyscall_windows.go
mksyscall_windows.go
263:272 
265:274 
265:274 
view