microsoft / clrmd
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
  • 29% duplication:
    • 36,339 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 10,810 duplicated lines
  • 1,030 duplicates
system29% (10,810 lines)
Duplication per Extension
cs32% (9,757 lines)
yml36% (866 lines)
ps15% (175 lines)
psm13% (12 lines)
Duplication per Component (primary)
src/Microsoft.Diagnostics.Runtime.Utilities/Debugger68% (8,851 lines)
eng/common/templates37% (840 lines)
src/Microsoft.Diagnostics.Runtime/src5% (818 lines)
eng/common/sdl19% (89 lines)
eng/common3% (56 lines)
src/Benchmarks21% (50 lines)
src/TestTasks/src13% (38 lines)
eng/common/post-build3% (30 lines)
ROOT16% (26 lines)
eng/common/native2% (12 lines)
eng0% (0 lines)
eng/common/cross0% (0 lines)
eng/common/internal0% (0 lines)
src/LongRunningTests/ParallelStressTest0% (0 lines)
src/Microsoft.Diagnostics.Runtime.Utilities0% (0 lines)
src/Microsoft.Diagnostics.Runtime0% (0 lines)
src/Microsoft.Diagnostics.Runtime/Properties0% (0 lines)
src/TestTargets/AppDomains0% (0 lines)
src/TestTargets/Arrays0% (0 lines)
src/TestTargets/ByReference0% (0 lines)
src/TestTargets/ClrObjects0% (0 lines)
src/TestTargets0% (0 lines)
src/TestTargets/FinalizationQueue0% (0 lines)
src/TestTargets/GCHandles0% (0 lines)
src/TestTargets/GCRoot0% (0 lines)
src/TestTargets/GCRoot20% (0 lines)
src/TestTargets/NestedException0% (0 lines)
src/TestTargets/NestedTypes0% (0 lines)
src/TestTargets/Shared0% (0 lines)
src/TestTargets/Types0% (0 lines)

Duplication Between Components (50+ lines)

G src/Microsoft.Diagnostics.Runtime.Utilities/Debugger src/Microsoft.Diagnostics.Runtime.Utilities/Debugger src/Microsoft.Diagnostics.Runtime/src src/Microsoft.Diagnostics.Runtime/src src/Microsoft.Diagnostics.Runtime.Utilities/Debugger--src/Microsoft.Diagnostics.Runtime/src 206

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 1,030 duplicates...
Size#FoldersFilesLinesCode
813 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl5.cs
IDebugControl6.cs
18:1008 (94%)
18:1008 (94%)
view
745 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols4.cs
IDebugSymbols5.cs
18:891 (92%)
18:891 (90%)
view
507 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl4.cs
IDebugControl5.cs
18:647 (62%)
18:647 (59%)
view
507 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl4.cs
IDebugControl6.cs
18:647 (62%)
18:647 (58%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl3.cs
IDebugControl4.cs
18:539 (88%)
18:539 (51%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl2.cs
IDebugControl5.cs
18:539 (92%)
18:539 (49%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl2.cs
IDebugControl4.cs
18:539 (92%)
18:539 (51%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl2.cs
IDebugControl3.cs
18:539 (92%)
18:539 (88%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl2.cs
IDebugControl6.cs
18:539 (92%)
18:539 (49%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl3.cs
IDebugControl6.cs
18:539 (88%)
18:539 (49%)
view
424 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugControl3.cs
IDebugControl5.cs
18:539 (88%)
18:539 (49%)
view
311 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols3.cs
IDebugSymbols4.cs
18:389 (41%)
18:389 (38%)
view
311 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols3.cs
IDebugSymbols5.cs
18:389 (41%)
18:389 (37%)
view
268 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugClient5.cs
IDebugClient6.cs
18:364 (66%)
18:364 (65%)
view
266 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols2.cs
IDebugSymbols4.cs
18:334 (84%)
18:334 (32%)
view
266 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols2.cs
IDebugSymbols3.cs
18:334 (84%)
18:334 (35%)
view
266 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugSymbols2.cs
IDebugSymbols5.cs
18:334 (84%)
18:334 (32%)
view
233 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugClient4.cs
IDebugClient5.cs
18:321 (85%)
18:321 (57%)
view
233 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugClient4.cs
IDebugClient6.cs
18:321 (85%)
18:321 (57%)
view
204 x 2 src/Microsoft.Diagnostic...time.Utilities/Debugger
src/Microsoft.Diagnostic...time.Utilities/Debugger
IDebugClient3.cs
IDebugClient6.cs
18:286 (86%)
18:286 (50%)
view
Duplicated Units
The list of top 6 duplicated units.
See data for all 6 unit duplicates...
Size#FoldersFilesLinesCode
23 x 2 src/Microsoft.Diagnostics.Runtime/src/Extensions
src/Microsoft.Diagnostics.Runtime/src/Extensions
BinarySearchExtensions.cs
BinarySearchExtensions.cs
12:38 
40:66 
view
15 x 2 src/Benchmarks
src/Benchmarks
HeapBenchmarks.cs
ParallelHeapBenchmarks.cs
26:44 
28:46 
view
15 x 2 src/Microsoft.Diagnostic...time/src/Implementation
src/Microsoft.Diagnostic...time/src/Implementation
ClrmdStringType.cs
ClrmdType.cs
147:166 
174:193 
view
14 x 2 src/Microsoft.Diagnostic...time/src/Implementation
src/Microsoft.Diagnostic...time/src/Implementation
ClrmdStringType.cs
ClrmdType.cs
130:145 
157:172 
view
13 x 2 src/Benchmarks
src/Microsoft.Diagnostics.Runtime/src/Windows
AweHelpers.cs
CacheNativeMethods.cs
15:32 
229:246 
view
6 x 2 src/Microsoft.Diagnostics.Runtime/src/Builders
src/Microsoft.Diagnostics.Runtime/src/Builders
FieldBuilder.cs
MethodBuilder.cs
40:46 
56:62 
view