microsoft / mu_basecore
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,164 files with 967,840 lines of code.
    • 210 very long files (386,195 lines of code)
    • 330 long files (231,543 lines of code)
    • 567 medium size files (178,739 lines of codeclsfd_ftr_w_mp_ins)
    • 566 small files (82,004 lines of code)
    • 2,491 very small files (89,359 lines of code)
39% | 23% | 18% | 8% | 9%
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
c42% | 28% | 18% | 6% | 4%
py47% | 21% | 18% | 8% | 4%
nasm53% | 9% | 10% | 2% | 24%
h13% | 19% | 24% | 18% | 23%
S75% | 2% | 7% | 6% | 8%
g87% | 12% | 0% | 0% | 0%
cpp63% | 17% | 15% | 1% | 1%
pyw0% | 100% | 0% | 0% | 0%
r0% | 74% | 25% | 0% | 0%
g40% | 100% | 0% | 0% | 0%
html0% | 0% | 76% | 23% | 0%
pl0% | 0% | 100% | 0% | 0%
asm0% | 0% | 7% | 39% | 53%
yaml0% | 0% | 0% | 0% | 100%
inc0% | 0% | 0% | 0% | 100%
lds0% | 0% | 0% | 0% | 100%
s0% | 0% | 0% | 0% | 100%
yml0% | 0% | 0% | 0% | 100%
nsh0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
MdeModulePkg38% | 28% | 18% | 6% | 7%
BaseTools51% | 21% | 15% | 6% | 4%
CryptoPkg72% | 11% | 6% | 3% | 5%
ShellPkg49% | 20% | 16% | 8% | 5%
NetworkPkg33% | 31% | 21% | 8% | 4%
MdePkg20% | 18% | 22% | 13% | 25%
UefiCpuPkg15% | 33% | 25% | 15% | 10%
PcAtChipsetPkg0% | 26% | 30% | 23% | 18%
StandaloneMmPkg0% | 0% | 61% | 22% | 15%
UnitTestFrameworkPkg0% | 0% | 47% | 32% | 19%
PolicyServicePkg0% | 0% | 71% | 0% | 28%
PerformancePkg0% | 0% | 0% | 100% | 0%
Longest Files (Top 50)
File# lines# units
CParser.py
in BaseTools/Source/Python/Ecc/CParser3
12295 184
CParser.py
in BaseTools/Source/Python/Eot/CParser3
12295 184
g
VfrSyntax.g
in BaseTools/Source/C/VfrCompile
5338 -
scan.c
in BaseTools/Source/C/VfrCompile/Pccts/antlr
4853 165
nasm
aesni-x86_64.nasm
in CryptoPkg/Library/OpensslLib/X64/crypto/aes
4510 -
Pci.c
in ShellPkg/Library/UefiShellDebug1CommandsLib
4443 -
QueryTable.c
in ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView
4214 -
S
aesni-x86_64.S
in CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes
4117 -
ScsiDisk.c
in MdeModulePkg/Bus/Scsi/ScsiDiskDxe
4072 -
Setup.c
in MdeModulePkg/Universal/SetupBrowserDxe
4059 -
ConfigRouting.c
in MdeModulePkg/Universal/HiiDatabaseDxe
3743 -
gen.c
in BaseTools/Source/C/VfrCompile/Pccts/antlr
3711 15
nasm
sha256-586.nasm
in CryptoPkg/Library/OpensslLib/IA32/crypto/sha
3363 -
antlr.c
in BaseTools/Source/C/VfrCompile/Pccts/antlr
3237 1
nasm
aesni-x86.nasm
in CryptoPkg/Library/OpensslLib/IA32/crypto/aes
3211 -
VfrUtilityLib.cpp
in BaseTools/Source/C/VfrCompile
3195 -
DscBuildData.py
in BaseTools/Source/Python/Workspace
2997 101
nasm
sha256-mb-x86_64.nasm
in CryptoPkg/Library/OpensslLib/X64/crypto/sha
2975 -
ConSplitter.c
in MdeModulePkg/Universal/Console/ConSplitterDxe
2956 -
Database.c
in MdeModulePkg/Universal/HiiDatabaseDxe
2941 -
FdfParser.py
in BaseTools/Source/Python/GenFds
2924 134
nasm
sha256-x86_64.nasm
in CryptoPkg/Library/OpensslLib/X64/crypto/sha
2862 -
S
sha256-mb-x86_64.S
in CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha
2838 -
IScsiConfig.c
in NetworkPkg/IScsiDxe
2780 -
nasm
sha1-x86_64.nasm
in CryptoPkg/Library/OpensslLib/X64/crypto/sha
2778 -
nasm
sha1-mb-x86_64.nasm
in CryptoPkg/Library/OpensslLib/X64/crypto/sha
2740 -
FormDisplay.c
in MdeModulePkg/Universal/DisplayEngineDxe
2726 -
S
sha256-x86_64.S
in CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha
2715 -
UefiHandleParsingLib.c
in ShellPkg/Library/UefiHandleParsingLib
2707 -
S
sha1-mb-x86_64.S
in CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha
2603 -
S
sha1-x86_64.S
in CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha
2596 -
XhciSched.c
in MdeModulePkg/Bus/Pci/XhciDxe
2530 -
GenFvInternalLib.c
in BaseTools/Source/C/GenFv
2462 -
Expression.c
in MdeModulePkg/Universal/SetupBrowserDxe
2427 -
HiiLib.c
in MdeModulePkg/Library/UefiHiiLib
2419 -
EbcExecute.c
in MdeModulePkg/Universal/EbcDxe
2391 -
mrhoist.c
in BaseTools/Source/C/VfrCompile/Pccts/antlr
2390 53
g
antlr.g
in BaseTools/Source/C/VfrCompile/Pccts/antlr
2367 -
UefiShellLib.c
in ShellPkg/Library/UefiShellLib
2358 -
PrintInfo.c
in ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView
2316 -
LzmaEnc.c
in BaseTools/Source/C/LzmaCompress/Sdk/C
2310 61
Variable.c
in MdeModulePkg/Universal/Variable/RuntimeDxe
2297 -
DevicePathFromText.c
in MdePkg/Library/UefiDevicePathLib
2274 -
VfrFormPkg.h
in BaseTools/Source/C/VfrCompile
2265 146
ShellProtocol.c
in ShellPkg/Application/Shell
2260 -
GenFw.c
in BaseTools/Source/C/GenFw
2258 1
DevicePathFromText.c
in BaseTools/Source/C/DevicePath
2199 -
c.py
in BaseTools/Source/Python/Ecc
2143 61
CLexer.py
in BaseTools/Source/Python/Ecc/CParser3
2126 116
CLexer.py
in BaseTools/Source/Python/Eot/CParser3
2126 116
Files With Most Units (Top 20)
File# lines# units
CommonObject.py
in BaseTools/Source/Python/UPT/Object/POM
580 209
CParser.py
in BaseTools/Source/Python/Ecc/CParser3
12295 184
CParser.py
in BaseTools/Source/Python/Eot/CParser3
12295 184
scan.c
in BaseTools/Source/C/VfrCompile/Pccts/antlr
4853 165
VfrFormPkg.h
in BaseTools/Source/C/VfrCompile
2265 146
ModuleObject.py
in BaseTools/Source/Python/UPT/Object/POM
377 143
CListener.py
in BaseTools/Source/Python/Ecc/CParser4
292 142
CListener.py
in BaseTools/Source/Python/Eot/CParser4
292 142
FdfParser.py
in BaseTools/Source/Python/GenFds
2924 134
CLexer.py
in BaseTools/Source/Python/Ecc/CParser3
2126 116
CLexer.py
in BaseTools/Source/Python/Eot/CParser3
2126 116
DscBuildData.py
in BaseTools/Source/Python/Workspace
2997 101
EotMain.py
in BaseTools/Source/Python/Eot
1214 100
baseobject.py
in BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/edk2/model
730 99
ModuleAutoGen.py
in BaseTools/Source/Python/AutoGen
1743 87
efibinary.py
in BaseTools/Scripts/PackageDocumentTools/plugins/EdkPlugins/basemodel
479 79
DecObject.py
in BaseTools/Source/Python/UPT/Object/Parser
279 75
Misc.py
in BaseTools/Source/Python/Common
1422 73
Check.py
in BaseTools/Source/Python/Ecc
1059 73
MetaFileParser.py
in BaseTools/Source/Python/Workspace
1653 70
Files With Long Lines (Top 20)

There are 678 files with lines longer than 120 characters. In total, there are 6724 long lines.

File# lines# units# long lines
CParser.py
in BaseTools/Source/Python/Ecc/CParser3
12295 184 392
CParser.py
in BaseTools/Source/Python/Eot/CParser3
12295 184 392
g
VfrSyntax.g
in BaseTools/Source/C/VfrCompile
5338 - 383
DscBuildData.py
in BaseTools/Source/Python/Workspace
2997 101 271
Aml.c
in MdeModulePkg/Universal/Acpi/AcpiTableDxe
231 - 143
Check.py
in BaseTools/Source/Python/Ecc
1059 73 134
c.py
in BaseTools/Source/Python/Ecc
2143 61 113
GenC.py
in BaseTools/Source/Python/AutoGen
1177 18 108
GenFw.c
in BaseTools/Source/C/GenFw
2258 1 70
Variable.c
in MdeModulePkg/Universal/Variable/RuntimeDxe
2297 - 70
PrintInfo.c
in ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView
2316 - 70
FdfParser.py
in BaseTools/Source/Python/GenFds
2924 134 68
GenerateCapsule.py
in BaseTools/Source/Python/Capsule
860 17 65
build.py
in BaseTools/Source/Python/build
1926 63 64
BuildReport.py
in BaseTools/Source/Python/build
1606 42 58
VfrFormPkg.h
in BaseTools/Source/C/VfrCompile
2265 146 55
LaffStd.c
in MdeModulePkg/Universal/Console/GraphicsConsoleDxe
246 - 50
GenFvInternalLib.c
in BaseTools/Source/C/GenFv
2462 - 44
PlatformAutoGen.py
in BaseTools/Source/Python/AutoGen
1152 56 44
GenFds.py
in BaseTools/Source/Python/GenFds
631 12 44