microsoft / AttackSurfaceAnalyzer
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 150 files with 16,318 lines of code.
    • 2 very long files (2,355 lines of code)
    • 2 long files (1,690 lines of code)
    • 17 medium size files (5,096 lines of codeclsfd_ftr_w_mp_ins)
    • 22 small files (3,144 lines of code)
    • 107 very small files (4,033 lines of code)
14% | 10% | 31% | 19% | 24%
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
cs17% | 12% | 29% | 18% | 21%
razor0% | 0% | 26% | 38% | 34%
yml0% | 0% | 55% | 0% | 44%
css0% | 0% | 100% | 0% | 0%
ps10% | 0% | 0% | 0% | 100%
cshtml0% | 0% | 0% | 0% | 100%
Razor0% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
Cli88% | 0% | 0% | 0% | 11%
Lib/Utils39% | 0% | 27% | 9% | 23%
Benchmarks0% | 36% | 16% | 22% | 24%
Lib/Properties0% | 100% | 0% | 0% | 0%
Lib/Collectors0% | 0% | 67% | 27% | 5%
Cli/Pages0% | 0% | 40% | 33% | 25%
Pipelines0% | 0% | 100% | 0% | 0%
Cli/wwwroot0% | 0% | 100% | 0% | 0%
Lib/Objects0% | 0% | 11% | 27% | 61%
Cli/Components0% | 0% | 0% | 30% | 69%
Cli/Shared0% | 0% | 0% | 94% | 5%
Pipelines/templates0% | 0% | 0% | 0% | 100%
Tools/scripts0% | 0% | 0% | 0% | 100%
Tools/Docker0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
docfx0% | 0% | 0% | 0% | 100%
Lib0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
AttackSurfaceAnalyzerClient.cs
in Cli
1318 30
SqliteDatabaseManager.cs
in Lib/Utils
1037 45
SystemSqliteDatabaseManager.cs
in Benchmarks
858 40
Resources.Designer.cs
in Lib/Properties
832 1
razor
Sandbox.razor
in Cli/Pages
489 -
FileSystemCollector.cs
in Lib/Collectors
458 8
LiteDbManager.cs
in Benchmarks
398 44
core-pipeline.yml
in Pipelines
354 -
UserAccountCollector.cs
in Lib/Collectors
344 7
asa.css
in Cli/wwwroot/css
296 -
BaseCompare.cs
in Lib/Collectors
293 9
FileSystemMonitor.cs
in Lib/Collectors
293 30
NativeMethods.cs
in Lib/Utils
267 2
TpmCollector.cs
in Lib/Collectors
258 10
CommandOptions.cs
in Lib/Objects
249 2
ServiceCollector.cs
in Lib/Collectors
247 8
EventLogCollector.cs
in Lib/Collectors
246 6
FileSystemUtils.cs
in Lib/Collectors
240 6
Elevation.cs
in Lib/Utils
238 7
FirewallCollector.cs
in Lib/Collectors
213 6
AsaHelpers.cs
in Lib/Utils
213 14
WindowsFileSystemUtils.cs
in Lib/Collectors
187 6
AsaNvIndex.cs
in Lib/Objects
183 34
razor
Results.razor
in Cli/Components/States
172 -
ComObjectCollector.cs
in Lib/Collectors
168 5
Win32OpenPortListenerHelper.cs
in Lib/Utils
159 2
WifiCollector.cs
in Lib/Collectors
154 7
QueryTests.cs
in Benchmarks
149 13
DriverCollector.cs
in Lib/Collectors
149 6
OpenPortCollector.cs
in Lib/Collectors
149 4
razor
Guided.razor
in Cli/Pages
148 -
Types.cs
in Lib/Objects
147 -
razor
Author.razor
in Cli/Pages
141 -
SqlConnectionHolder.cs
in Lib/Objects
138 7
CertificateCollector.cs
in Lib/Collectors
135 6
RuleFile.cs
in Lib/Objects
131 7
LiteDbQueryTests.cs
in Benchmarks
130 11
SystemSqliteSqlConnectionHolder.cs
in Benchmarks
130 8
razor
NavMenu.razor
in Cli/Shared
129 -
CryptoTests.cs
in Benchmarks
123 7
razor
Analyze.razor
in Cli/Pages
114 -
RegistryCollector.cs
in Lib/Collectors
107 3
RegistryWalker.cs
in Lib/Utils
101 2
FileWatcher.cs
in Lib/Utils
100 13
InsertTestsWithoutTransactions.cs
in Benchmarks
96 8
CompareResult.cs
in Lib/Objects
93 3
ExternalCommandRunner.cs
in Lib/Utils
93 3
SystemSqliteInsertTests.cs
in Benchmarks
91 8
InsertTestsWithIntermittentTransactions.cs
in Benchmarks
90 8
CryptographicKeyObject.cs
in Lib/Objects
89 5
Files With Most Units (Top 20)
File# lines# units
SqliteDatabaseManager.cs
in Lib/Utils
1037 45
LiteDbManager.cs
in Benchmarks
398 44
SystemSqliteDatabaseManager.cs
in Benchmarks
858 40
AsaNvIndex.cs
in Lib/Objects
183 34
AttackSurfaceAnalyzerClient.cs
in Cli
1318 30
FileSystemMonitor.cs
in Lib/Collectors
293 30
AsaHelpers.cs
in Lib/Utils
213 14
QueryTests.cs
in Benchmarks
149 13
FileWatcher.cs
in Lib/Utils
100 13
LiteDbQueryTests.cs
in Benchmarks
130 11
TpmCollector.cs
in Lib/Collectors
258 10
BaseCompare.cs
in Lib/Collectors
293 9
InsertTestsWithIntermittentTransactions.cs
in Benchmarks
90 8
InsertTestsWithoutTransactions.cs
in Benchmarks
96 8
LiteDbInsertTests.cs
in Benchmarks
74 8
OpenTransactionTest.cs
in Benchmarks
67 8
SetupTimeTest.cs
in Benchmarks
88 8
SystemSqliteInsertTests.cs
in Benchmarks
91 8
SystemSqliteSqlConnectionHolder.cs
in Benchmarks
130 8
FileSystemCollector.cs
in Lib/Collectors
458 8
Files With Long Lines (Top 20)

There are 83 files with lines longer than 120 characters. In total, there are 526 long lines.

File# lines# units# long lines
SqliteDatabaseManager.cs
in Lib/Utils
1037 45 85
SystemSqliteDatabaseManager.cs
in Benchmarks
858 40 69
AttackSurfaceAnalyzerClient.cs
in Cli
1318 30 42
UserAccountCollector.cs
in Lib/Collectors
344 7 21
CommandOptions.cs
in Lib/Objects
249 2 18
BaseCompare.cs
in Lib/Collectors
293 9 17
razor
Sandbox.razor
in Cli/Pages
489 - 14
FirewallCollector.cs
in Lib/Collectors
213 6 13
FileSystemCollector.cs
in Lib/Collectors
458 8 12
LiteDbManager.cs
in Benchmarks
398 44 11
EventLogCollector.cs
in Lib/Collectors
246 6 10
razor
Guided.razor
in Cli/Pages
148 - 9
WifiCollector.cs
in Lib/Collectors
154 7 9
razor
FileCollectorOptions.razor
in Cli/Components/CollectorOptions
83 - 8
DriverCollector.cs
in Lib/Collectors
149 6 7
DatabaseManager.cs
in Lib/Utils
86 4 7
razor
FileMonitorOptions.razor
in Cli/Components/MonitorOptions
60 - 6
razor
Results.razor
in Cli/Components/States
172 - 6
CertificateCollector.cs
in Lib/Collectors
135 6 6
ComObjectCollector.cs
in Lib/Collectors
168 5 6