microsoft / ApplicationInsights-dotnet
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
  • 16% duplication:
    • 34,371 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,654 duplicated lines
  • 746 duplicates
system16% (5,654 lines)
Duplication per Extension
cs15% (5,139 lines)
ps162% (305 lines)
cmd62% (179 lines)
props33% (31 lines)
Duplication per Component (primary)
WEB/Src16% (2,470 lines)
BASE/src15% (2,434 lines)
NETCORE/src7% (156 lines)
WEB/Schema100% (98 lines)
NETCORE/Schema100% (98 lines)
BASE/Schema71% (81 lines)
LOGGING/src6% (79 lines)
NETCORE40% (70 lines)
BASE78% (66 lines)
WEB26% (60 lines)
LOGGING72% (42 lines)
ROOT0% (0 lines)
troubleshooting/ETW0% (0 lines)
troubleshooting/Ingestion0% (0 lines)

Duplication Between Components (50+ lines)

G BASE/src BASE/src WEB/Src WEB/Src BASE/src--WEB/Src 932 NETCORE/Schema NETCORE/Schema WEB/Schema WEB/Schema NETCORE/Schema--WEB/Schema 196 BASE/Schema BASE/Schema BASE/Schema--NETCORE/Schema 162 BASE/Schema--WEB/Schema 162 NETCORE/src NETCORE/src NETCORE/src--WEB/Src 143 BASE BASE WEB WEB BASE--WEB 101 LOGGING LOGGING BASE--LOGGING 82 LOGGING/src LOGGING/src LOGGING/src--NETCORE/src 70 LOGGING/src--WEB/Src 69 NETCORE NETCORE NETCORE--WEB 50

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 746 duplicates...
Size#FoldersFilesLinesCode
283 x 2 BASE/src/Microsoft.Appli.../Implementation/Tracing
WEB/Src/WindowsServer/WindowsServer/Implementation
CoreEventSource.cs
MetricManager.cs
52:433 (59%)
982:1363 (44%)
view
98 x 2 NETCORE/Schema
WEB/Schema
generateSchema.ps1
generateSchema.ps1
1:126 (100%)
1:126 (100%)
view
81 x 2 BASE/Schema
NETCORE/Schema
generateSchema.ps1
generateSchema.ps1
14:113 (71%)
14:113 (82%)
view
81 x 2 BASE/Schema
WEB/Schema
generateSchema.ps1
generateSchema.ps1
14:113 (71%)
14:113 (82%)
view
72 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
48:137 (34%)
53:142 (30%)
view
68 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
WeakConcurrentRandom.cs
WeakConcurrentRandom.cs
13:215 (98%)
7:209 (98%)
view
54 x 2 WEB/Src/PerformanceColle...ckPulse/Process/PerfLib
WEB/Src/PerformanceColle...ckPulse/Process/PerfLib
NativeMethods.cs
NativeMethods.cs
84:155 (50%)
84:156 (50%)
view
53 x 2 BASE/src/ServerTelemetry.../BackwardsCompatability
BASE/src/ServerTelemetryChannel/Implementation
SamplingPercentageEstimatorSettings.cs
SamplingPercentageEstimatorSettings.cs
10:193 (96%)
9:192 (98%)
view
50 x 2 WEB/Src/PerformanceColle...mplementation/XPlatform
WEB/Src/PerformanceColle...AppPerformanceCollector
PerformanceCollectorXPlatform.cs
WebAppPerformanceCollector.cs
11:126 (50%)
11:126 (48%)
view
40 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
TaskTimerInternal.cs
TaskTimerInternal.cs
1:116 (81%)
1:117 (81%)
view
38 x 2 WEB/Src/PerformanceColle...tract/TelemetryDocument
WEB/Src/PerformanceColle...tract/TelemetryDocument
DependencyTelemetryDocument.cs
DependencyTelemetryDocument.cs
1:61 (86%)
1:62 (84%)
view
32 x 2 WEB/Src/PerformanceColle...tract/TelemetryDocument
WEB/Src/PerformanceColle...tract/TelemetryDocument
RequestTelemetryDocument.cs
RequestTelemetryDocument.cs
1:52 (84%)
1:53 (82%)
view
30 x 2 NETCORE/src/Microsoft.Ap...isteners/Implementation
WEB/Src/Common
PropertyFetcher.cs
PropertyFetcher.cs
11:93 (96%)
11:85 (93%)
view
28 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/Microsoft.Appli...sibility/Implementation
RichPayloadEventSource.TelemetryHandl...
RichPayloadEventSource.TelemetryHandl...
525:560 (4%)
698:733 (4%)
view
28 x 2 WEB/Src/DependencyCollec...on/SqlClientDiagnostics
WEB/Src/DependencyCollec...on/SqlClientDiagnostics
SqlClientDiagnosticSourceListener.cs
SqlClientDiagnosticSourceListener.cs
635:673 (5%)
678:717 (5%)
view
28 x 2 WEB/Src/PerformanceColle...tract/TelemetryDocument
WEB/Src/PerformanceColle...tract/TelemetryDocument
ExceptionTelemetryDocument.cs
ExceptionTelemetryDocument.cs
1:46 (82%)
1:47 (80%)
view
27 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
XorshiftRandomBatchGenerator.cs
XorshiftRandomBatchGenerator.cs
9:71 (96%)
9:71 (96%)
view
25 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
272:309 (11%)
275:312 (10%)
view
25 x 2 BASE/src/Microsoft.Appli...lectedMetricsExtraction
WEB/Src/WindowsServer/WindowsServer/Implementation
MetricTerms.cs
MetricManager.cs
5:59 (43%)
47:101 (3%)
view
25 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
311:355 (11%)
314:358 (10%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 71 unit duplicates...
Size#FoldersFilesLinesCode
36 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
WeakConcurrentRandom.cs
WeakConcurrentRandom.cs
105:171 
99:165 
view
28 x 2 BASE/src/Microsoft.ApplicationInsights/Metrics
BASE/src/Microsoft.ApplicationInsights/Metrics
MetricSeries.cs
MetricSeries.cs
121:154 
163:196 
view
26 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
50:77 
55:82 
view
26 x 2 WEB/Src/PerformanceColle...mplementation/XPlatform
WEB/Src/PerformanceColle...AppPerformanceCollector
PerformanceCollectorXPlatform.cs
WebAppPerformanceCollector.cs
69:97 
69:97 
view
25 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
TaskTimerInternal.cs
TaskTimerInternal.cs
58:88 
59:89 
view
25 x 2 WEB/Src/DependencyCollec...on/SqlClientDiagnostics
WEB/Src/DependencyCollec...on/SqlClientDiagnostics
SqlClientDiagnosticSourceListener.cs
SqlClientDiagnosticSourceListener.cs
598:632 
784:818 
view
23 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
85:109 
90:114 
view
23 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
111:135 
116:140 
view
21 x 2 WEB/Src/PerformanceColle...plementation/QuickPulse
WEB/Src/PerformanceColle...plementation/QuickPulse
QuickPulseServiceClient.cs
QuickPulseServiceClient.cs
326:351 
329:354 
view
19 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
XorshiftRandomBatchGenerator.cs
XorshiftRandomBatchGenerator.cs
50:72 
50:72 
view
18 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/Microsoft.Appli...sibility/Implementation
DictionarySerializationWriter.cs
DictionarySerializationWriter.cs
44:64 
66:86 
view
17 x 2 LOGGING/src/ILogger
NETCORE/src/Microsoft.Ap.../Logging/Implementation
ApplicationInsightsLogger.cs
ApplicationInsightsLogger.cs
130:147 
92:109 
view
17 x 2 WEB/Src/Common
WEB/Src/Common
ApplicationInsightsActivity.cs
ApplicationInsightsActivity.cs
30:54 
60:84 
view
17 x 2 WEB/Src/DependencyCollec...lementation/HttpParsers
WEB/Src/DependencyCollec...lementation/HttpParsers
AzureSearchHttpParser.cs
DocumentDbHttpParser.cs
174:191 
148:166 
view
15 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/ServerTelemetryChannel/Implementation
WeakConcurrentRandom.cs
WeakConcurrentRandom.cs
198:216 
192:210 
view
15 x 2 NETCORE/src/Microsoft.Ap...isteners/Implementation
WEB/Src/Common
HeadersUtilities.cs
HeadersUtilities.cs
21:37 
24:40 
view
14 x 2 WEB/Src/PerformanceColle...mplementation/XPlatform
WEB/Src/PerformanceColle...ardPerformanceCollector
PerformanceCollectorXPlatform.cs
StandardPerformanceCollector.cs
121:136 
137:152 
view
13 x 2 BASE/src/Microsoft.ApplicationInsights/Metrics
BASE/src/Microsoft.ApplicationInsights/Metrics
MetricSeries.cs
MetricSeries.cs
304:317 
319:332 
view
12 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
BASE/src/Microsoft.Appli...sibility/Implementation
JsonSerializationWriter.cs
JsonSerializationWriter.cs
163:176 
179:192 
view
12 x 2 BASE/src/Microsoft.Appli...sibility/Implementation
WEB/Src/WindowsServer/WindowsServer/Implementation
SnapshottingCollection.cs
MetricManager.cs
89:102 
748:761 
view