microsoft / binskim
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 202 files with 17,216 lines of code.
    • 1 very long files (1,166 lines of code)
    • 2 long files (1,379 lines of code)
    • 15 medium size files (4,823 lines of codeclsfd_ftr_w_mp_ins)
    • 29 small files (4,496 lines of code)
    • 155 very small files (5,352 lines of code)
6% | 8% | 28% | 26% | 31%
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
cs7% | 8% | 28% | 27% | 29%
ps10% | 0% | 77% | 0% | 22%
cmd0% | 0% | 0% | 0% | 100%
wixproj0% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
targets0% | 0% | 0% | 0% | 100%
c0% | 0% | 0% | 0% | 100%
yml0% | 0% | 0% | 0% | 100%
wxs0% | 0% | 0% | 0% | 100%
cpp0% | 0% | 0% | 0% | 100%
h0% | 0% | 0% | 0% | 100%
TXT0% | 0% | 0% | 0% | 100%
hs0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/Test.FunctionalTests.BinSkim.Rules68% | 0% | 12% | 0% | 18%
src/BinaryParsers0% | 20% | 37% | 24% | 17%
src/BinSkim.Rules0% | 0% | 31% | 29% | 38%
src/BinSkim.Sdk0% | 0% | 44% | 0% | 55%
src/BinSkim.Driver0% | 0% | 0% | 42% | 57%
src/Test.UnitTests.BinSkim.Driver0% | 0% | 0% | 87% | 12%
src/Test.FunctionalTests.BinSkim.Driver0% | 0% | 0% | 54% | 45%
src/Test.UnitTests.BinSkim.Rules0% | 0% | 0% | 97% | 2%
src/Test.UnitTests.BinaryParsers0% | 0% | 0% | 38% | 61%
ROOT0% | 0% | 0% | 0% | 100%
src0% | 0% | 0% | 0% | 100%
src/Test.Samples0% | 0% | 0% | 0% | 100%
src/BuildSamples0% | 0% | 0% | 0% | 100%
src/Shared0% | 0% | 0% | 0% | 100%
src/DefaultProject0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
RuleTests.cs
in src/Test.FunctionalTests.BinSkim.Rules
1166 106
DwarfEnums.cs
in src/BinaryParsers/ElfBinary/Dwarf
719 -
PE.cs
in src/BinaryParsers/PEBinary/PortableExecutable
660 11
BA2024.EnableSpectreMitigations.cs
in src/BinSkim.Rules/PERules
445 13
NativeInterop.cs
in src/BinSkim.Rules
444 6
Pdb.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
432 31
Symbol.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
395 14
DwarfCompilationUnit.cs
in src/BinaryParsers/ElfBinary/Dwarf
382 4
DwarfCommonInformationEntry.cs
in src/BinaryParsers/ElfBinary/Dwarf
338 10
BA2022.SignSecurely.cs
in src/BinSkim.Rules/PERules
328 9
ElfBinary.cs
in src/BinaryParsers/ElfBinary
320 14
CompilerDataLogger.cs
in src/BinSkim.Sdk
270 11
RulesExtensionMethods.cs
in src/BinSkim.Rules
261 6
SafePointer.cs
in src/BinaryParsers/PEBinary/PortableExecutable
259 15
DwarfLineNumberProgram.cs
in src/BinaryParsers/ElfBinary/Dwarf
255 7
BA2006.BuildWithSecureTools.cs
in src/BinSkim.Rules/PERules
248 10
TruncatedCompilandRecordList.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
227 15
GenerateTests.ps1
in src/Test.FunctionalTests.BinSkim.Rules/FunctionalTestsData/BA2024.EnableSpectreMitigations
219 -
BA2012.DoNotModifyStackProtectionCookie.cs
in src/BinSkim.Rules/PERules
199 9
BA2007.EnableCriticalCompilerWarnings.cs
in src/BinSkim.Rules/PERules
196 6
DwarfMemoryReader.cs
in src/BinaryParsers/ElfBinary/Dwarf
188 17
BA2004.EnableSecureSourceCodeHashing.cs
in src/BinSkim.Rules/PERules
185 6
BaselineTests.cs
in src/Test.FunctionalTests.BinSkim.Driver
178 6
SingleMachOBinary.cs
in src/BinaryParsers/MachOBinary
177 7
EnableSpectreMitigationsTests.cs
in src/Test.UnitTests.BinSkim.Rules
173 12
BA3030.UseCheckedFunctionsWithGCC.cs
in src/BinSkim.Rules/ElfRules
168 2
PEBinary.cs
in src/BinaryParsers/PEBinary
168 8
ObjectModuleDetails.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
167 6
ElfBinaryTests.cs
in src/Test.UnitTests.BinaryParsers/Elf
164 11
DwarfAttributeValue.cs
in src/BinaryParsers/ElfBinary/Dwarf
163 3
BA3003.EnableStackProtector.cs
in src/BinSkim.Rules/DwarfRules
160 3
BA2002.DoNotIncorporateVulnerableDependencies.cs
in src/BinSkim.Rules/PERules
154 5
DwarfSymbolProvider.cs
in src/BinaryParsers/ElfBinary/Dwarf
154 5
CryptoErrors.cs
in src/BinSkim.Rules
150 -
AnalysisSummaryExtractorUnitTests.cs
in src/Test.UnitTests.BinSkim.Driver
148 5
CompilerCommandLine.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
146 1
BA2008.EnableControlFlowGuard.cs
in src/BinSkim.Rules/PERules
144 4
CommandLineHelper.cs
in src/BinaryParsers
144 3
CompilandRecord.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
142 11
AnalyzeCommand.cs
in src/BinSkim.Driver
140 3
BA3005.EnableStackClashProtection.cs
in src/BinSkim.Rules/DwarfRules
137 3
ImageHeader.cs
in src/BinaryParsers/PEBinary/PortableExecutable
136 7
WindowsBinaryAndPdbSkimmerBase.cs
in src/BinSkim.Rules/PERules
132 4
SourceFile.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
129 5
AnalysisSummaryExtractor.cs
in src/BinSkim.Driver
128 6
CompilerDataLoggerUnitTests.cs
in src/Test.UnitTests.BinSkim.Driver
118 5
DumpCommand.cs
in src/BinSkim.Driver
108 2
BA2018.EnableSafeSEH.cs
in src/BinSkim.Rules/PERules
98 2
BA2026.EnableAdditionalSdlSecurityChecks.cs
in src/BinSkim.Rules/PERules
97 2
TestMessageLogger.cs
in src/Test.FunctionalTests.BinSkim.Rules
93 10
Files With Most Units (Top 20)
File# lines# units
RuleTests.cs
in src/Test.FunctionalTests.BinSkim.Rules
1166 106
Pdb.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
432 31
DwarfMemoryReader.cs
in src/BinaryParsers/ElfBinary/Dwarf
188 17
SafePointer.cs
in src/BinaryParsers/PEBinary/PortableExecutable
259 15
TruncatedCompilandRecordList.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
227 15
ElfBinary.cs
in src/BinaryParsers/ElfBinary
320 14
Symbol.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
395 14
BA2024.EnableSpectreMitigations.cs
in src/BinSkim.Rules/PERules
445 13
EnableSpectreMitigationsTests.cs
in src/Test.UnitTests.BinSkim.Rules
173 12
CompilerDataLogger.cs
in src/BinSkim.Sdk
270 11
PE.cs
in src/BinaryParsers/PEBinary/PortableExecutable
660 11
CompilandRecord.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
142 11
ElfBinaryTests.cs
in src/Test.UnitTests.BinaryParsers/Elf
164 11
BA2006.BuildWithSecureTools.cs
in src/BinSkim.Rules/PERules
248 10
DwarfCommonInformationEntry.cs
in src/BinaryParsers/ElfBinary/Dwarf
338 10
TestMessageLogger.cs
in src/Test.FunctionalTests.BinSkim.Rules
93 10
BA2012.DoNotModifyStackProtectionCookie.cs
in src/BinSkim.Rules/PERules
199 9
BA2022.SignSecurely.cs
in src/BinSkim.Rules/PERules
328 9
RoslynAnalysisContext.cs
in src/BinSkim.Driver/RoslynAnalyzer
30 8
RoslynCompilationStartAnalysisContext.cs
in src/BinSkim.Driver/RoslynAnalyzer
31 8
Files With Long Lines (Top 20)

There are 108 files with lines longer than 120 characters. In total, there are 509 long lines.

File# lines# units# long lines
RulesExtensionMethods.cs
in src/BinSkim.Rules
261 6 56
RuleTests.cs
in src/Test.FunctionalTests.BinSkim.Rules
1166 106 35
BA2024.EnableSpectreMitigations.cs
in src/BinSkim.Rules/PERules
445 13 24
EnableSpectreMitigationsTests.cs
in src/Test.UnitTests.BinSkim.Rules
173 12 19
BA2022.SignSecurely.cs
in src/BinSkim.Rules/PERules
328 9 16
MetadataConditions.cs
in src/BinSkim.Sdk
43 - 15
GenerateTests.ps1
in src/Test.FunctionalTests.BinSkim.Rules/FunctionalTestsData/BA2024.EnableSpectreMitigations
219 - 15
DwarfCommonInformationEntry.cs
in src/BinaryParsers/ElfBinary/Dwarf
338 10 13
DwarfCompilationUnit.cs
in src/BinaryParsers/ElfBinary/Dwarf
382 4 12
ElfBinaryTests.cs
in src/Test.UnitTests.BinaryParsers/Elf
164 11 11
AnalyzeCommand.cs
in src/BinSkim.Driver
140 3 10
BA2004.EnableSecureSourceCodeHashing.cs
in src/BinSkim.Rules/PERules
185 6 9
BA2008.EnableControlFlowGuard.cs
in src/BinSkim.Rules/PERules
144 4 8
ElfBinary.cs
in src/BinaryParsers/ElfBinary
320 14 8
Pdb.cs
in src/BinaryParsers/PEBinary/ProgramDatabase
432 31 8
UpdateBaselines.ps1
in src/Test.FunctionalTests.BinSkim.Driver
63 - 8
BA2002.DoNotIncorporateVulnerableDependencies.cs
in src/BinSkim.Rules/PERules
154 5 7
DwarfSymbolProvider.cs
in src/BinaryParsers/ElfBinary/Dwarf
154 5 7
BaselineTests.cs
in src/Test.FunctionalTests.BinSkim.Driver
178 6 7
BA2006.BuildWithSecureTools.cs
in src/BinSkim.Rules/PERules
248 10 6