microsoft / vs-threading
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
  • 6% duplication:
    • 11,272 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 788 duplicated lines
  • 110 duplicates
system6% (788 lines)
Duplication per Extension
cs6% (591 lines)
ps110% (124 lines)
yml9% (73 lines)
Duplication per Component (primary)
src/Microsoft.VisualStudio.Threading6% (353 lines)
src/Microsoft.VisualStudio.Threading.Analyzers12% (160 lines)
src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes11% (104 lines)
azure-pipelines7% (73 lines)
src/Microsoft.VisualStudio.Threading.Analyzers.CSharp4% (40 lines)
azure-pipelines/variables22% (22 lines)
tools5% (22 lines)
ROOT3% (8 lines)
src/Microsoft.VisualStudio.Threading.Analyzers.VisualBasic7% (6 lines)
azure-pipelines/artifacts0% (0 lines)
src0% (0 lines)
src/SosThreadingTools0% (0 lines)

Duplication Between Components (50+ lines)

G src/Microsoft.VisualStudio.Threading.Analyzers.CSharp src/Microsoft.VisualStudio.Threading.Analyzers.CSharp src/Microsoft.VisualStudio.Threading.Analyzers src/Microsoft.VisualStudio.Threading.Analyzers src/Microsoft.VisualStudio.Threading.Analyzers.CSharp--src/Microsoft.VisualStudio.Threading.Analyzers 66

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 110 duplicates...
Size#FoldersFilesLinesCode
23 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
665:721 (5%)
779:835 (5%)
view
21 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
933:981 (5%)
1026:1074 (5%)
view
20 x 2 src/Microsoft.VisualStud...alyzers.CodeFixes/tools
src/Microsoft.VisualStud...alyzers.CodeFixes/tools
install.ps1
uninstall.ps1
15:36 (44%)
15:36 (39%)
view
18 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
394:431 (4%)
566:602 (4%)
view
17 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
475:512 (4%)
551:587 (4%)
view
15 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
330:357 (3%)
490:520 (3%)
view
14 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
689:718 (3%)
1045:1074 (3%)
view
14 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
803:832 (3%)
1045:1074 (3%)
view
14 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
689:718 (3%)
952:981 (3%)
view
14 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
803:832 (3%)
952:981 (3%)
view
13 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
747:771 (3%)
861:885 (3%)
view
13 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
322:349 (3%)
386:416 (3%)
view
12 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
330:349 (3%)
566:587 (3%)
view
12 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
ReentrantSemaphore.cs
ReentrantSemaphore.cs
394:416 (3%)
490:512 (3%)
view
11 x 2 azure-pipelines/variables
azure-pipelines/variables
InsertConfigValues.ps1
InsertPropsValues.ps1
4:15 (84%)
4:16 (84%)
view
10 x 2 src/Microsoft.VisualStudio.Threading.Analyzers
src/Microsoft.VisualStudio.Threading.Analyzers
VSTHRD100AsyncVoidMethodAnalyzer.cs
VSTHRD101AsyncVoidLambdaAnalyzer.cs
43:61 (43%)
45:63 (38%)
view
10 x 2 src/Microsoft.VisualStud...eading.Analyzers.CSharp
src/Microsoft.VisualStudio.Threading.Analyzers
VSTHRD002UseJtfRunAnalyzer.cs
VSTHRD106UseInvokeAsyncForAsyncEvents...
41:59 (13%)
40:58 (34%)
view
10 x 2 src/Microsoft.VisualStudio.Threading.Analyzers
src/Microsoft.VisualStudio.Threading.Analyzers
AbstractVSTHRD108AssertThreadRequirem...
AbstractVSTHRD109AvoidAssertInAsyncMe...
45:63 (18%)
35:52 (37%)
view
10 x 2 azure-pipelines
azure-pipelines
official.yml
release.yml
108:117 (8%)
63:72 (12%)
view
10 x 2 src/Microsoft.VisualStud...eading.Analyzers.CSharp
src/Microsoft.VisualStud...eading.Analyzers.CSharp
VSTHRD002UseJtfRunAnalyzer.cs
VSTHRD003UseJtfRunAsyncAnalyzer.cs
41:59 (13%)
47:65 (7%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
26 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
TplExtensions.cs
TplExtensions.cs
276:304 
316:344 
view
17 x 2 src/Microsoft.VisualStudio.Threading.Analyzers
src/Microsoft.VisualStudio.Threading.Analyzers
Utils.cs
Utils.cs
20:37 
39:56 
view
9 x 2 src/Microsoft.VisualStudio.Threading.Analyzers
src/Microsoft.VisualStudio.Threading.Analyzers
AbstractVSTHRD108AssertThreadRequirem...
AbstractVSTHRD109AvoidAssertInAsyncMe...
53:64 
43:53 
view
9 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
AwaitExtensions.cs
AwaitExtensions.cs
600:610 
676:686 
view
6 x 2 src/Microsoft.VisualStudio.Threading
src/Microsoft.VisualStudio.Threading
TplExtensions.cs
TplExtensions.cs
150:157 
164:171 
view