microsoft / vs-threading
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 203 files with 18,492 lines of code.
    • 1 very long files (1,642 lines of code)
    • 5 long files (3,390 lines of code)
    • 16 medium size files (5,059 lines of codeclsfd_ftr_w_mp_ins)
    • 24 small files (3,360 lines of code)
    • 157 very small files (5,041 lines of code)
8% | 18% | 27% | 18% | 27%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
cs10% | 20% | 30% | 17% | 20%
ps10% | 0% | 0% | 25% | 74%
yml0% | 0% | 0% | 15% | 84%
props0% | 0% | 0% | 0% | 100%
targets0% | 0% | 0% | 0% | 100%
cmd0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/Microsoft.VisualStudio.Threading15% | 27% | 29% | 16% | 10%
src/Microsoft.VisualStudio.Threading.Analyzers0% | 26% | 12% | 16% | 44%
src/Microsoft.VisualStudio.Threading.Analyzers.CSharp0% | 0% | 55% | 19% | 25%
src/SosThreadingTools0% | 0% | 62% | 0% | 37%
src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes0% | 0% | 23% | 36% | 39%
tools0% | 0% | 0% | 48% | 51%
ROOT0% | 0% | 0% | 51% | 48%
azure-pipelines0% | 0% | 0% | 12% | 87%
azure-pipelines/artifacts0% | 0% | 0% | 0% | 100%
src/Microsoft.VisualStudio.Threading.Analyzers.VisualBasic0% | 0% | 0% | 0% | 100%
azure-pipelines/variables0% | 0% | 0% | 0% | 100%
src0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
AsyncReaderWriterLock.cs
in src/Microsoft.VisualStudio.Threading
1642 86
JoinableTask.cs
in src/Microsoft.VisualStudio.Threading
798 15
JoinableTaskDependencyGraph.cs
in src/Microsoft.VisualStudio.Threading
707 39
ReentrantSemaphore.cs
in src/Microsoft.VisualStudio.Threading
692 24
JoinableTaskFactory.cs
in src/Microsoft.VisualStudio.Threading
646 46
Utils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
547 38
DumpAsyncCommand.cs
in src/SosThreadingTools
487 13
TplExtensions.cs
in src/Microsoft.VisualStudio.Threading
464 31
AwaitExtensions.cs
in src/Microsoft.VisualStudio.Threading
454 34
AsyncReaderWriterResourceLock`2.cs
in src/Microsoft.VisualStudio.Threading
430 34
VSTHRD010MainThreadUsageAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
370 12
FixUtils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
355 9
JoinableTaskContext.cs
in src/Microsoft.VisualStudio.Threading
341 21
AsyncQueue`1.cs
in src/Microsoft.VisualStudio.Threading
274 15
CommonInterest.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
271 13
WeakKeyDictionary`2.cs
in src/Microsoft.VisualStudio.Threading
269 22
CancellableJoinComputation.cs
in src/Microsoft.VisualStudio.Threading
239 6
VSTHRD003UseJtfRunAsyncAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
235 6
CSharpUtils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
230 12
Dgml.cs
in src/Microsoft.VisualStudio.Threading
230 19
AsyncSemaphore.cs
in src/Microsoft.VisualStudio.Threading
208 12
AsyncReaderWriterLock+HangReportContributor.cs
in src/Microsoft.VisualStudio.Threading
202 10
Install-DotNetSdk.ps1
in tools
199 -
ThreadingTools.cs
in src/Microsoft.VisualStudio.Threading
196 10
InternalUtilities.cs
in src/Microsoft.VisualStudio.Threading
191 7
ListOfOftenOne`1.cs
in src/Microsoft.VisualStudio.Threading
175 11
JoinableTaskContext+HangReportContributor.cs
in src/Microsoft.VisualStudio.Threading
172 7
SingleThreadedSynchronizationContext.cs
in src/Microsoft.VisualStudio.Threading
169 8
VSTHRD103UseAsyncOptionCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
168 4
VSTHRD103UseAsyncOptionAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
167 6
JoinableTaskCollection.cs
in src/Microsoft.VisualStudio.Threading
154 9
VSTHRD109AvoidAssertInAsyncMethodsCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
137 1
Types.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
133 -
ProgressWithCompletion`1.cs
in src/Microsoft.VisualStudio.Threading
129 8
AsyncLazy`1.cs
in src/Microsoft.VisualStudio.Threading
125 4
VSTHRD002UseJtfRunAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
122 5
VSTHRD002UseJtfRunCodeFixWithAwait.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
122 2
VSTHRD010MainThreadUsageCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
122 1
init.ps1
in root
119 -
CancellationTokenExtensions.cs
in src/Microsoft.VisualStudio.Threading
117 5
official.yml
in azure-pipelines
115 -
AsyncManualResetEvent.cs
in src/Microsoft.VisualStudio.Threading
113 9
DiagnosticAnalyzerState.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
108 4
AsyncAutoResetEvent.cs
in src/Microsoft.VisualStudio.Threading
104 7
NonConcurrentSynchronizationContext.cs
in src/Microsoft.VisualStudio.Threading
102 5
AbstractVSTHRD012SpecifyJtfWhereAllowed.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
101 6
OptProf.yml
in azure-pipelines
100 -
AbstractVSTHRD108AssertThreadRequirementUnconditionally.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
99 5
EnumerateOneOrMany`1.cs
in src/Microsoft.VisualStudio.Threading
96 4
JoinableTask+JoinableTaskSynchronizationContext.cs
in src/Microsoft.VisualStudio.Threading
94 5
Files With Most Units (Top 20)
File# lines# units
AsyncReaderWriterLock.cs
in src/Microsoft.VisualStudio.Threading
1642 86
JoinableTaskFactory.cs
in src/Microsoft.VisualStudio.Threading
646 46
JoinableTaskDependencyGraph.cs
in src/Microsoft.VisualStudio.Threading
707 39
Utils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
547 38
AsyncReaderWriterResourceLock`2.cs
in src/Microsoft.VisualStudio.Threading
430 34
AwaitExtensions.cs
in src/Microsoft.VisualStudio.Threading
454 34
TplExtensions.cs
in src/Microsoft.VisualStudio.Threading
464 31
ReentrantSemaphore.cs
in src/Microsoft.VisualStudio.Threading
692 24
WeakKeyDictionary`2.cs
in src/Microsoft.VisualStudio.Threading
269 22
JoinableTaskContext.cs
in src/Microsoft.VisualStudio.Threading
341 21
Dgml.cs
in src/Microsoft.VisualStudio.Threading
230 19
AsyncQueue`1.cs
in src/Microsoft.VisualStudio.Threading
274 15
JoinableTask.cs
in src/Microsoft.VisualStudio.Threading
798 15
CommonInterest.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
271 13
DumpAsyncCommand.cs
in src/SosThreadingTools
487 13
CSharpUtils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
230 12
VSTHRD010MainThreadUsageAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
370 12
AsyncSemaphore.cs
in src/Microsoft.VisualStudio.Threading
208 12
ListOfOftenOne`1.cs
in src/Microsoft.VisualStudio.Threading
175 11
AsyncReaderWriterLock+HangReportContributor.cs
in src/Microsoft.VisualStudio.Threading
202 10
Files With Long Lines (Top 20)

There are 136 files with lines longer than 120 characters. In total, there are 973 long lines.

File# lines# units# long lines
AsyncReaderWriterLock.cs
in src/Microsoft.VisualStudio.Threading
1642 86 60
JoinableTaskDependencyGraph.cs
in src/Microsoft.VisualStudio.Threading
707 39 52
VSTHRD010MainThreadUsageAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
370 12 50
Utils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
547 38 37
ReentrantSemaphore.cs
in src/Microsoft.VisualStudio.Threading
692 24 37
VSTHRD003UseJtfRunAsyncAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
235 6 36
CommonInterest.cs
in src/Microsoft.VisualStudio.Threading.Analyzers
271 13 31
AsyncReaderWriterResourceLock`2.cs
in src/Microsoft.VisualStudio.Threading
430 34 29
JoinableTaskFactory.cs
in src/Microsoft.VisualStudio.Threading
646 46 29
DumpAsyncCommand.cs
in src/SosThreadingTools
487 13 25
FixUtils.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
355 9 24
VSTHRD109AvoidAssertInAsyncMethodsCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
137 1 24
JoinableTask.cs
in src/Microsoft.VisualStudio.Threading
798 15 23
VSTHRD010MainThreadUsageCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
122 1 22
VSTHRD103UseAsyncOptionCodeFix.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
168 4 20
VSTHRD103UseAsyncOptionAnalyzer.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CSharp
167 6 18
VSTHRD002UseJtfRunCodeFixWithAwait.cs
in src/Microsoft.VisualStudio.Threading.Analyzers.CodeFixes
122 2 16
AwaitExtensions.cs
in src/Microsoft.VisualStudio.Threading
454 34 16
TplExtensions.cs
in src/Microsoft.VisualStudio.Threading
464 31 16
AsyncReaderWriterLock+HangReportContributor.cs
in src/Microsoft.VisualStudio.Threading
202 10 15