microsoft / dotnet-samples
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
  • 24% duplication:
    • 5,513 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,373 duplicated lines
  • 173 duplicates
system24% (1,373 lines)
Duplication per Extension
cs25% (1,341 lines)
xaml18% (32 lines)
Duplication per Component (primary)
System.Numerics/SIMD/Mandelbrot56% (745 lines)
Microsoft.Diagnostics.Tracing/TraceEvent/TraceEvent33% (376 lines)
System.Numerics/SIMD/RayTracer8% (72 lines)
WinForms-HDPI/SystemAware8% (59 lines)
Microsoft.Diagnostics.Tracing/EventSource/EventSource12% (50 lines)
WinForms-HDPI/PerMonitorAware9% (45 lines)
WinForms-HDPI/PerMonitorAware/Properties100% (13 lines)
WinForms-HDPI/SystemAware/Properties100% (13 lines)
System.Numerics/SIMD0% (0 lines)
System.Reflection.Metadata/MdDumper0% (0 lines)
System.Reflection.Metadata/MdDumper/Visualization0% (0 lines)

Duplication Between Components (50+ lines)

G WinForms-HDPI/PerMonitorAware WinForms-HDPI/PerMonitorAware WinForms-HDPI/SystemAware WinForms-HDPI/SystemAware WinForms-HDPI/PerMonitorAware--WinForms-HDPI/SystemAware 104

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 173 duplicates...
Size#FoldersFilesLinesCode
42 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
20_ObserveGCEvent.cs
22_ObserveEventSource.cs
73:147 (53%)
68:142 (58%)
view
35 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
20_ObserveGCEvent.cs
21_ObserveJitEvents.cs
89:147 (44%)
181:239 (27%)
view
35 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
21_ObserveJitEvents.cs
22_ObserveEventSource.cs
181:239 (27%)
84:142 (48%)
view
27 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
34_KernelAndClrFileWin7.cs
99:161 (42%)
113:175 (40%)
view
26 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
50_SimpleFileRelogger.cs
51_SimpleMonitorRelogger.cs
149:209 (32%)
156:216 (28%)
view
21 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
50_SimpleFileRelogger.cs
46:84 (32%)
96:134 (26%)
view
18 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDoubleStrict.cs
VectorDoubleStrict.cs
96:117 (13%)
186:207 (13%)
view
17 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDoubleStrict.cs
VectorDoubleStrict.cs
32:52 (12%)
77:97 (12%)
view
17 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDouble.cs
VectorDouble.cs
120:140 (12%)
170:190 (12%)
view
16 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorFloatStrict.cs
VectorFloatStrict.cs
86:104 (13%)
164:182 (13%)
view
16 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDouble.cs
VectorDouble.cs
48:67 (11%)
142:161 (11%)
view
15 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
34_KernelAndClrFileWin7.cs
50_SimpleFileRelogger.cs
142:175 (22%)
176:209 (18%)
view
15 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
ScalarDouble.cs
ScalarDouble.cs
61:78 (15%)
131:148 (15%)
view
15 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
50_SimpleFileRelogger.cs
128:161 (23%)
176:209 (18%)
view
15 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
51_SimpleMonitorRelogger.cs
128:161 (23%)
183:216 (16%)
view
15 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
ScalarFloat.cs
ScalarFloat.cs
48:64 (18%)
105:122 (18%)
view
15 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
34_KernelAndClrFileWin7.cs
51_SimpleMonitorRelogger.cs
142:175 (22%)
183:216 (16%)
view
15 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDoubleStrict.cs
VectorDoubleStrict.cs
126:143 (11%)
169:186 (11%)
view
14 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorDouble.cs
VectorDouble.cs
93:111 (10%)
189:207 (10%)
view
13 x 2 WinForms-HDPI/PerMonitorAware/Properties
WinForms-HDPI/SystemAware/Properties
AssemblyInfo.cs
AssemblyInfo.cs
1:36 (100%)
1:36 (100%)
view
Duplicated Units
The list of top 10 duplicated units.
See data for all 10 unit duplicates...
Size#FoldersFilesLinesCode
34 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
VectorFloat.cs
VectorFloatStrict.cs
97:134 
148:185 
view
24 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
34_KernelAndClrFileWin7.cs
99:140 
113:154 
view
23 x 2 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
50_SimpleFileRelogger.cs
51_SimpleMonitorRelogger.cs
149:188 
156:195 
view
19 x 3 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
20_ObserveGCEvent.cs
21_ObserveJitEvents.cs
22_ObserveEventSource.cs
89:110 
181:202 
84:105 
view
17 x 3 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
20_ObserveGCEvent.cs
21_ObserveJitEvents.cs
22_ObserveEventSource.cs
123:146 
215:238 
118:141 
view
13 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/Mandelbrot
FlyThru.xaml.cs
MainWindow.xaml.cs
141:156 
146:159 
view
10 x 2 System.Numerics/SIMD/Mandelbrot
System.Numerics/SIMD/RayTracer
App.xaml.cs
App.xaml.cs
28:39 
27:38 
view
10 x 2 System.Numerics/SIMD/RayTracer/Objects
System.Numerics/SIMD/RayTracer/Objects
Disc.cs
Quad.cs
19:29 
20:30 
view
9 x 4 Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
Microsoft.Diagnostics.Tr...g/TraceEvent/TraceEvent
32_KernelAndClrFile.cs
34_KernelAndClrFileWin7.cs
50_SimpleFileRelogger.cs
51_SimpleMonitorRelogger.cs
147:162 
161:176 
195:210 
202:217 
view
7 x 10 WinForms-HDPI/PerMonitorAware
WinForms-HDPI/PerMonitorAware
WinForms-HDPI/PerMonitorAware
WinForms-HDPI/PerMonitorAware
WinForms-HDPI/SystemAware
WinForms-HDPI/SystemAware
WinForms-HDPI/SystemAware
WinForms-HDPI/SystemAware
WinForms-HDPI/SystemAware
WinForms-HDPI/SystemAware
CustomDrawing.Designer.cs
MainForm.Designer.cs
ScaleButtonImages.Designer.cs
SimpleLayout.Designer.cs
Calendar.Designer.cs
DataGridViewHeadersScaling.Designer.cs
MainForm.Designer.cs
MenuStripAndCheckedListBox.Designer.cs
MultipleScalingPasses.Designer.cs
RightAnchor.Designer.cs
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
14:21 
16:23 
view