microsoft / BuildXL
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 4,421 files with 614,935 lines of code.
    • 77 very long files (176,331 lines of code)
    • 125 long files (83,480 lines of code)
    • 464 medium size files (142,352 lines of codeclsfd_ftr_w_mp_ins)
    • 681 small files (96,175 lines of code)
    • 3,074 very small files (116,597 lines of code)
28% | 13% | 23% | 15% | 18%
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
cs24% | 14% | 24% | 16% | 20%
ts88% | 5% | 2% | 1% | 1%
cpp51% | 16% | 21% | 6% | 5%
ps10% | 37% | 14% | 10% | 36%
h0% | 0% | 48% | 27% | 23%
cmd0% | 0% | 24% | 24% | 51%
hpp0% | 0% | 18% | 23% | 57%
proto0% | 0% | 85% | 0% | 14%
c0% | 0% | 66% | 21% | 12%
csl0% | 0% | 25% | 36% | 38%
mm0% | 0% | 51% | 38% | 10%
filters0% | 0% | 0% | 54% | 45%
g40% | 0% | 0% | 100% | 0%
lua0% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
vsixmanifest0% | 0% | 0% | 0% | 100%
m0% | 0% | 0% | 0% | 100%
psm10% | 0% | 0% | 0% | 100%
xaml0% | 0% | 0% | 0% | 100%
targets0% | 0% | 0% | 0% | 100%
gp0% | 0% | 0% | 0% | 100%
Props0% | 0% | 0% | 0% | 100%
in0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
Public/Src29% | 13% | 23% | 15% | 18%
Private/Wdg33% | 0% | 16% | 24% | 26%
Shared/Scripts0% | 13% | 16% | 30% | 39%
ROOT0% | 0% | 67% | 0% | 32%
Private/CloudStorePlayground0% | 0% | 43% | 8% | 47%
Private/CloudTest0% | 0% | 38% | 50% | 10%
Public/Sdk0% | 0% | 0% | 55% | 44%
Private/DistributedIntegrationTest0% | 0% | 0% | 38% | 61%
Shared/Npm0% | 0% | 0% | 0% | 100%
Private/InternalSdk0% | 0% | 0% | 0% | 100%
Private/macOS0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
Checker.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeChecking
17855 783
checker.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
12727 800
emitter.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
6012 309
Scheduler.cs
in Public/Src/Engine/Scheduler
5544 119
DetouredFunctions.cpp
in Public/Src/Sandbox/Windows/DetoursServices
5389 126
Parser.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
4710 376
Parser.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Parsing
4410 308
SandboxedProcessPipExecutor.cs
in Public/Src/Engine/Processes
4340 113
PipExecutor.cs
in Public/Src/Engine/Scheduler
4026 83
FileSystem.Win.cs
in Public/Src/Utilities/Native/IO/Windows
3613 111
Log.cs
in Public/Src/Engine/Scheduler/Tracing
3489 1
FileContentManager.cs
in Public/Src/Engine/Scheduler/Artifacts
3108 111
Engine.cs
in Public/Src/Engine/Dll
2975 59
FileChangeTrackingSet.cs
in Public/Src/Utilities/Storage/ChangeTracking
2682 80
PipGraph.Builder.cs
in Public/Src/Pips/Dll/Graph
2597 80
Log.cs
in Public/Src/Engine/Dll/Tracing
2560 1
LocalLocationStoreDistributedContentTests.cs
in Public/Src/Cache/ContentStore/DistributedTest/ContentLocation
2493 70
NativeMethods.cs
in Public/Src/Cache/ContentStore/Library/FileSystem
2291 5
AstConverter.cs
in Public/Src/FrontEnd/Script/RuntimeModel/AstBridge
2239 127
disasm.cpp
in Public/Src/Sandbox/Windows/Detours/Lib
2167 97
Utilities.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
2165 221
FileSystemContentStoreInternal.cs
in Public/Src/Cache/ContentStore/Library/Stores
2127 93
NodeImplementations.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
2113 151
NtStatus.cs
in Public/Src/Utilities/Native/IO/Windows
2077 5
BuildXLApp.cs
in Public/Src/App/Bxl
2048 73
Args.cs
in Public/Src/App/Bxl
2039 32
DfsVisitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
1986 164
Scanner.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Scanning
1960 63
BasicFilesystemCache.cs
in Public/Src/Cache/VerticalStore/BasicFilesystem
1959 46
Types.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
1855 -
GraphAgnosticIncrementalSchedulingState.cs
in Public/Src/Engine/Scheduler/IncrementalScheduling
1833 50
FileUtilities.Win.cs
in Public/Src/Utilities/Native/IO/Windows
1802 44
EngineSchedule.cs
in Public/Src/Engine/Dll
1768 37
LocalLocationStore.cs
in Public/Src/Cache/ContentStore/Distributed/NuCache
1744 62
image.cpp
in Public/Src/Sandbox/Windows/Detours/Lib
1653 53
Visitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
1559 236
NodeUtilities.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types
1555 109
Binder.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Binding
1554 87
FileMonitoringViolationAnalyzer.cs
in Public/Src/Engine/Scheduler
1552 35
ObservedInputProcessor.cs
in Public/Src/Engine/Scheduler/Fingerprints
1542 45
AbsFileSystemTests.cs
in Public/Src/Cache/ContentStore/InterfacesTest/FileSystem
1507 103
MockRedisDatabaseFactory.TestDatabase.cs
in Public/Src/Cache/ContentStore/DistributedTest/Redis
1496 313
Types.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types
1487 79
SummaryAnalyzer.cs
in Public/Src/Tools/Execution.Analyzer/Analyzers.Partner
1485 76
detours.cpp
in Public/Src/Sandbox/Windows/Detours/Lib
1461 48
declarationEmitter.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
1416 90
WorkspaceNugetModuleResolver.cs
in Public/Src/FrontEnd/Nuget
1407 54
DropDaemon.cs
in Public/Src/Tools/DropDaemon
1402 47
ReformatterVisitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Reformatter
1366 140
FileAccessManifest.cs
in Public/Src/Engine/Processes
1340 65
Files With Most Units (Top 20)
File# lines# units
checker.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
12727 800
Checker.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeChecking
17855 783
Parser.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
4710 376
MockRedisDatabaseFactory.TestDatabase.cs
in Public/Src/Cache/ContentStore/DistributedTest/Redis
1496 313
emitter.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
6012 309
Parser.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Parsing
4410 308
Visitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
1559 236
Utilities.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
2165 221
DfsVisitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
1986 164
NodeImplementations.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types/Nodes
2113 151
ReformatterVisitor.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Reformatter
1366 140
AstConverter.cs
in Public/Src/FrontEnd/Script/RuntimeModel/AstBridge
2239 127
DetouredFunctions.cpp
in Public/Src/Sandbox/Windows/DetoursServices
5389 126
Scheduler.cs
in Public/Src/Engine/Scheduler
5544 119
SandboxedProcessPipExecutor.cs
in Public/Src/Engine/Processes
4340 113
FileContentManager.cs
in Public/Src/Engine/Scheduler/Artifacts
3108 111
FileSystem.Win.cs
in Public/Src/Utilities/Native/IO/Windows
3613 111
NodeUtilities.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Types
1555 109
AbsFileSystemTests.cs
in Public/Src/Cache/ContentStore/InterfacesTest/FileSystem
1507 103
disasm.cpp
in Public/Src/Sandbox/Windows/Detours/Lib
2167 97
Files With Long Lines (Top 20)

There are 2521 files with lines longer than 120 characters. In total, there are 25536 long lines.

File# lines# units# long lines
checker.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
12727 800 805
Errors.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Diagnostics
687 - 670
Checker.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeChecking
17855 783 646
Log.cs
in Public/Src/Engine/Scheduler/Tracing
3489 1 457
Scheduler.cs
in Public/Src/Engine/Scheduler
5544 119 449
SandboxedProcessPipExecutor.cs
in Public/Src/Engine/Processes
4340 113 382
Engine.cs
in Public/Src/Engine/Dll
2975 59 311
PipExecutor.cs
in Public/Src/Engine/Scheduler
4026 83 292
LocalLocationStoreDistributedContentTests.cs
in Public/Src/Cache/ContentStore/DistributedTest/ContentLocation
2493 70 231
FileSystem.Win.cs
in Public/Src/Utilities/Native/IO/Windows
3613 111 228
Args.cs
in Public/Src/App/Bxl
2039 32 223
Log.cs
in Public/Src/Engine/Dll/Tracing
2560 1 209
AstConverter.cs
in Public/Src/FrontEnd/Script/RuntimeModel/AstBridge
2239 127 188
MockRedisDatabaseFactory.TestDatabase.cs
in Public/Src/Cache/ContentStore/DistributedTest/Redis
1496 313 179
FileContentManager.cs
in Public/Src/Engine/Scheduler/Artifacts
3108 111 170
Scanner.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Scanning
1960 63 158
Parser.cs
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/Parsing
4410 308 156
emitter.ts
in Public/Src/FrontEnd/TypeScript.Net/TypeScript.Net/TypeScriptImpl
6012 309 142
BuildXLApp.cs
in Public/Src/App/Bxl
2048 73 141
PipGraph.Builder.cs
in Public/Src/Pips/Dll/Graph
2597 80 141