microsoft / AttackSurfaceAnalyzer
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
  • 12% duplication:
    • 10,473 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,265 duplicated lines
  • 122 duplicates
system12% (1,265 lines)
Duplication per Extension
cs9% (761 lines)
yml48% (306 lines)
razor10% (178 lines)
ps117% (20 lines)
Duplication per Component (primary)
Benchmarks28% (398 lines)
Pipelines/templates63% (174 lines)
Lib/Utils10% (161 lines)
Cli/Pages12% (146 lines)
Lib/Collectors6% (141 lines)
Pipelines37% (132 lines)
Lib/Objects3% (49 lines)
Cli/Components7% (32 lines)
Tools/scripts28% (20 lines)
Cli1% (12 lines)
Cli/Shared0% (0 lines)
Cli/wwwroot0% (0 lines)
ROOT0% (0 lines)
Lib0% (0 lines)
Lib/Properties0% (0 lines)
Tools/Docker0% (0 lines)
docfx0% (0 lines)

Duplication Between Components (50+ lines)

G Benchmarks Benchmarks Lib/Utils Lib/Utils Benchmarks--Lib/Utils 253

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 122 duplicates...
Size#FoldersFilesLinesCode
29 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
129:157 (8%)
162:190 (8%)
view
29 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
195:223 (8%)
228:256 (8%)
view
28 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
163:190 (7%)
229:256 (7%)
view
28 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
130:157 (7%)
229:256 (7%)
view
28 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
163:190 (7%)
196:223 (7%)
view
28 x 2 Pipelines
Pipelines
core-pipeline.yml
core-pipeline.yml
130:157 (7%)
196:223 (7%)
view
26 x 2 Pipelines/templates
Pipelines/templates
dotnet-publish-linux-mac-job.yml
dotnet-publish-win-netcore-job.yml
7:40 (33%)
7:40 (29%)
view
26 x 2 Benchmarks
Benchmarks
LiteDbQueryTests.cs
QueryTests.cs
17:68 (30%)
16:67 (26%)
view
19 x 2 Benchmarks
Lib/Objects
SystemSqliteSqlConnectionHolder.cs
SqlConnectionHolder.cs
41:81 (27%)
58:99 (24%)
view
18 x 2 Pipelines/templates
Pipelines/templates
dotnet-publish-linux-mac-job.yml
dotnet-publish-win-netcore-job.yml
44:61 (23%)
44:61 (20%)
view
18 x 2 Lib/Collectors
Lib/Collectors
WindowsFileSystemUtils.cs
WindowsFileSystemUtils.cs
27:59 (18%)
74:107 (18%)
view
16 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
723:748 (3%)
957:982 (2%)
view
16 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
751:777 (3%)
982:1008 (2%)
view
15 x 2 Pipelines/templates
Pipelines/templates
dotnet-publish-linux-mac-job.yml
nuget-build-job.yml
11:29 (19%)
7:25 (20%)
view
15 x 2 Pipelines/templates
Pipelines/templates
dotnet-publish-win-netcore-job.yml
nuget-build-job.yml
11:29 (16%)
7:25 (20%)
view
13 x 2 Lib/Utils
Lib/Utils
SqliteDatabaseManager.cs
SqliteDatabaseManager.cs
198:221 (2%)
403:426 (2%)
view
13 x 2 Lib/Utils
Lib/Utils
SqliteDatabaseManager.cs
SqliteDatabaseManager.cs
226:249 (2%)
403:426 (2%)
view
13 x 2 Cli/Pages
Cli/Pages
razor
Author.razor
Sandbox.razor
108:120 (9%)
250:262 (2%)
view
13 x 2 Lib/Utils
Lib/Utils
SqliteDatabaseManager.cs
SqliteDatabaseManager.cs
198:221 (2%)
226:249 (2%)
view
12 x 2 Pipelines/templates
Pipelines/templates
dotnet-publish-win-netcore-job.yml
nuget-build-job.yml
42:53 (13%)
34:45 (16%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 28 unit duplicates...
Size#FoldersFilesLinesCode
32 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
192:224 
367:399 
view
32 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
367:399 
192:224 
view
28 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
432:461 
615:644 
view
28 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
615:644 
432:461 
view
26 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
582:609 
813:840 
view
26 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
813:840 
582:609 
view
25 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
354:380 
535:561 
view
25 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
535:561 
354:380 
view
22 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
382:406 
563:587 
view
22 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
563:587 
382:406 
view
16 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
334:352 
515:533 
view
16 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
515:533 
334:352 
view
14 x 2 Benchmarks
Lib/Objects
SystemSqliteSqlConnectionHolder.cs
SqlConnectionHolder.cs
49:63 
66:80 
view
14 x 3 Lib/Collectors
Lib/Collectors
Lib/Collectors
CertificateCollector.cs
DriverCollector.cs
EventLogCollector.cs
33:47 
34:48 
266:280 
view
14 x 2 Lib/Collectors
Lib/Collectors
FirewallCollector.cs
ServiceCollector.cs
30:44 
38:52 
view
14 x 2 Lib/Collectors
Lib/Collectors
OpenPortCollector.cs
UserAccountCollector.cs
44:58 
59:73 
view
12 x 2 Benchmarks
Benchmarks
InsertTestsWithoutTransactions.cs
SetupTimeTest.cs
56:69 
61:74 
view
12 x 2 Benchmarks
Lib/Utils
SystemSqliteDatabaseManager.cs
SqliteDatabaseManager.cs
53:66 
104:117 
view
12 x 2 Lib/Utils
Benchmarks
SqliteDatabaseManager.cs
SystemSqliteDatabaseManager.cs
104:117 
53:66 
view
11 x 2 Benchmarks
Benchmarks
QueryTests.cs
SetupTimeTest.cs
193:204 
101:113 
view