microsoft / CLRInstrumentationEngine
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
  • 13% duplication:
    • 58,659 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 7,785 duplicated lines
  • 1,805 duplicates
system13% (7,785 lines)
Duplication per Extension
h14% (5,670 lines)
cpp7% (1,148 lines)
vcxproj40% (349 lines)
yaml24% (275 lines)
cs30% (250 lines)
props14% (56 lines)
awk58% (25 lines)
wixproj17% (12 lines)
Duplication per Component (primary)
inc/clr25% (2,984 lines)
src/Common.Lib57% (1,166 lines)
src/unix6% (1,050 lines)
src/InstrumentationEngine6% (801 lines)
src/InstrumentationEngine.Api9% (433 lines)
src/ExtensionsCommon13% (362 lines)
build/yaml24% (275 lines)
src/Extensions.Base.Api51% (250 lines)
src/Extensions.BaseLib27% (170 lines)
src/InstrumentationEngine.Lib5% (107 lines)
src/InstrumentationEngine.ProfilerProxy.Lib35% (77 lines)
build10% (56 lines)
src/InstrumentationEngine.ProfilerProxy10% (28 lines)
src/InstrumentationEngine.Installer5% (12 lines)
src/Extensions.Base5% (7 lines)
src/TestHostExtension2% (7 lines)
ROOT0% (0 lines)
build/Scripts0% (0 lines)
build/Tasks0% (0 lines)
src/Common.Headers0% (0 lines)
src/InstrumentationEngine.Attach0% (0 lines)
src/InstrumentationEngine.NuGet0% (0 lines)
src/InstrumentationEngine.XdtExtensions0% (0 lines)
src/Scripts0% (0 lines)

Duplication Between Components (50+ lines)

G src/Extensions.BaseLib src/Extensions.BaseLib src/ExtensionsCommon src/ExtensionsCommon src/Extensions.BaseLib--src/ExtensionsCommon 316 src/Common.Lib src/Common.Lib src/InstrumentationEngine.ProfilerProxy.Lib src/InstrumentationEngine.ProfilerProxy.Lib src/Common.Lib--src/InstrumentationEngine.ProfilerProxy.Lib 138 src/InstrumentationEngine.Lib src/InstrumentationEngine.Lib src/Common.Lib--src/InstrumentationEngine.Lib 106 src/InstrumentationEngine.Api src/InstrumentationEngine.Api src/Common.Lib--src/InstrumentationEngine.Api 94 src/InstrumentationEngine.Lib--src/InstrumentationEngine.ProfilerProxy.Lib 132 src/InstrumentationEngine src/InstrumentationEngine src/InstrumentationEngine.Lib--src/InstrumentationEngine 58 src/InstrumentationEngine.Api--src/InstrumentationEngine.ProfilerProxy.Lib 76 src/InstrumentationEngine.Api--src/InstrumentationEngine.Lib 74 src/InstrumentationEngine.ProfilerProxy src/InstrumentationEngine.ProfilerProxy src/InstrumentationEngine.ProfilerProxy--src/InstrumentationEngine 54

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,805 duplicates...
Size#FoldersFilesLinesCode
95 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
6352:6647 (<1%)
7132:7427 (<1%)
view
94 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
14872:15165 (<1%)
15834:16127 (<1%)
view
94 x 2 src/Extensions.BaseLib
src/ExtensionsCommon
DecorationCallbacksInfoReader.cpp
DecorationCallbacksInfoReader.cpp
77:196 (63%)
77:196 (63%)
view
93 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
5575:5863 (<1%)
6352:6640 (<1%)
view
93 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
5575:5863 (<1%)
7132:7420 (<1%)
view
92 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4823:5107 (<1%)
6352:6636 (<1%)
view
92 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4823:5107 (<1%)
7132:7416 (<1%)
view
92 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4823:5107 (<1%)
5575:5859 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
13951:14234 (<1%)
15834:16117 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4078:4358 (<1%)
5575:5855 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
13951:14234 (<1%)
14872:15155 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4078:4358 (<1%)
7132:7412 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4078:4358 (<1%)
4823:5103 (<1%)
view
91 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
4078:4358 (<1%)
6352:6632 (<1%)
view
90 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
3340:3616 (<1%)
7132:7408 (<1%)
view
90 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
3340:3616 (<1%)
5575:5851 (<1%)
view
90 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
3340:3616 (<1%)
4078:4354 (<1%)
view
90 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
3340:3616 (<1%)
6352:6628 (<1%)
view
90 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
3340:3616 (<1%)
4823:5099 (<1%)
view
88 x 2 inc/clr/prof
inc/clr/prof
corprof.h
corprof.h
13063:13336 (<1%)
14872:15145 (<1%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 21 unit duplicates...
Size#FoldersFilesLinesCode
54 x 2 src/Extensions.BaseLib
src/ExtensionsCommon
DecorationCallbacksInfoReader.cpp
DecorationCallbacksInfoReader.cpp
133:197 
133:197 
view
30 x 2 src/Extensions.BaseLib
src/ExtensionsCommon
DecorationCallbacksInfoReader.cpp
DecorationCallbacksInfoReader.cpp
95:130 
95:130 
view
21 x 2 src/InstrumentationEngine
src/InstrumentationEngine
AppDomainInfo.cpp
AssemblyInfo.cpp
267:295 
128:156 
view
18 x 2 src/InstrumentationEngine
src/InstrumentationEngine
MethodInfo.cpp
MethodInfo.cpp
712:734 
736:758 
view
12 x 2 src/unix/inc/atl
src/unix/inc/atl
cstringt.h
cstringt.h
2769:2786 
2790:2808 
view
10 x 2 src/unix/inc/atl
src/unix/inc/atl
cstringt.h
cstringt.h
2734:2747 
2751:2764 
view
9 x 2 src/unix/inc/atl
src/unix/inc/atl
atlcoll.h
cstringt.h
121:130 
3121:3130 
view
8 x 2 src/InstrumentationEngine
src/InstrumentationEngine
AppDomainInfo.cpp
AssemblyInfo.cpp
141:151 
102:114 
view
8 x 2 src/unix/inc/atl
src/unix/inc/mincom
atlcomcli.h
ccomptrs.h
181:189 
93:101 
view
8 x 2 src/unix/inc/atl
src/unix/inc/atl
cstringt.h
cstringt.h
3094:3102 
3103:3111 
view
7 x 3 src/InstrumentationEngine.Lib
src/InstrumentationEngine.Lib
src/InstrumentationEngine.Lib
ConfigurationSource.cpp
InstrumentationMethodAttachContext.cpp
InstrumentationMethodSetting.cpp
15:22 
14:21 
15:22 
view
7 x 2 src/InstrumentationEngine
src/InstrumentationEngine
AppDomainInfo.cpp
AssemblyInfo.cpp
358:368 
116:126 
view
7 x 2 src/unix/src/memory
src/unix/src/memory
memorystream.cpp
memorystream.cpp
281:288 
290:297 
view
6 x 2 inc/clr/extra
inc/clr/extra
LegacyActivationShimUtil.h
LegacyActivationShimUtil.h
176:182 
238:244 
view
6 x 2 src/ExtensionsCommon
src/ExtensionsCommon
InstrumentationMethodBase.cpp
InstrumentationMethodBase.cpp
438:445 
447:454 
view
6 x 2 src/InstrumentationEngine
src/InstrumentationEngine
AssemblyInfo.cpp
ModuleInfo.cpp
46:54 
225:233 
view
6 x 2 src/InstrumentationEngine
src/InstrumentationEngine
AssemblyInjector.cpp
AssemblyInjector.cpp
1691:1697 
1806:1812 
view
6 x 2 src/InstrumentationEngine
src/InstrumentationEngine
Instruction.cpp
Instruction.cpp
516:523 
873:880 
view
6 x 2 src/unix/inc/atl
src/unix/inc/atl
atltrace.h
atltrace.h
325:331 
336:342 
view
6 x 2 src/unix/inc/atl
src/unix/inc/atl
cstringt.h
cstringt.h
674:684 
687:697 
view