microsoft / xlang
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 234 files with 73,191 lines of code.
    • 12 very long files (44,552 lines of code)
    • 12 long files (7,723 lines of code)
    • 43 medium size files (12,928 lines of codeclsfd_ftr_w_mp_ins)
    • 29 small files (4,325 lines of code)
    • 138 very small files (3,663 lines of code)
60% | 10% | 17% | 5% | 5%
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
hpp100% | 0% | 0% | 0% | 0%
cpp63% | 12% | 16% | 3% | 3%
h23% | 22% | 34% | 11% | 7%
js100% | 0% | 0% | 0% | 0%
vcxproj0% | 0% | 74% | 25% | 0%
targets0% | 0% | 48% | 26% | 24%
natvis0% | 0% | 0% | 100% | 0%
cs0% | 0% | 0% | 59% | 40%
yml0% | 0% | 0% | 0% | 100%
filters0% | 0% | 0% | 0% | 100%
ps10% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
cmd0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
cmake0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
library93% | 0% | 5% | 1% | <1%
UndockedRegFreeWinRT/Catch100% | 0% | 0% | 0% | 0%
UndockedRegFreeWinRT/detours80% | 15% | 2% | 1% | <1%
tool/cppxlang28% | 12% | 41% | 9% | 7%
scripts98% | 0% | 0% | 0% | 1%
tool/python63% | 24% | 0% | 9% | 2%
tool/abi25% | 26% | 27% | 16% | 4%
library/impl0% | 32% | 49% | 13% | 4%
UndockedRegFreeWinRT/UndockedRegFreeWinRT0% | 31% | 57% | 6% | 4%
platform0% | 0% | 45% | 21% | 33%
platform/published0% | 0% | 100% | 0% | 0%
UndockedRegFreeWinRT/EmbeddedTestComponent0% | 0% | 62% | 0% | 37%
package/midlrt0% | 0% | 68% | 0% | 31%
UndockedRegFreeWinRT/ManifestParserTest0% | 0% | 62% | 0% | 37%
UndockedRegFreeWinRT/UndockedRegFreeWinRTTest0% | 0% | 80% | 0% | 19%
UndockedRegFreeWinRT/EmbeddedManifestTest0% | 0% | 78% | 0% | 21%
UndockedRegFreeWinRT/TestComponent0% | 0% | 0% | 60% | 39%
UndockedRegFreeWinRT/EmbeddedManifestManagedTest0% | 0% | 0% | 100% | 0%
package/abi0% | 0% | 0% | 95% | 4%
package/pywinrt0% | 0% | 0% | 0% | 100%
scripts/windows0% | 0% | 0% | 0% | 100%
platform/helpers0% | 0% | 0% | 0% | 100%
UndockedRegFreeWinRT/UndockedRegFreeWinRTManagedTest0% | 0% | 0% | 0% | 100%
UndockedRegFreeWinRT/Nuget0% | 0% | 0% | 0% | 100%
scripts/ubuntu0% | 0% | 0% | 0% | 100%
UndockedRegFreeWinRT0% | 0% | 0% | 0% | 100%
UndockedRegFreeWinRT/mwinrtact0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
catch.hpp
in src/UndockedRegFreeWinRT/Catch
12902 842
catch.hpp
in src/library
12902 842
disasm.cpp
in src/UndockedRegFreeWinRT/detours
3232 181
mdExts.js
in src/scripts
3158 273
code_writers.h
in src/tool/cppxlang
2363 84
detours.cpp
in src/UndockedRegFreeWinRT/detours
1860 69
code_writers.h
in src/tool/python
1830 81
image.cpp
in src/UndockedRegFreeWinRT/detours
1748 56
creatwth.cpp
in src/UndockedRegFreeWinRT/detours
1248 25
types.cpp
in src/tool/abi
1247 71
pybase.h
in src/tool/python/strings
1035 54
base_implements.h
in src/tool/cppxlang/strings
1027 73
component_writers.h
in src/tool/cppxlang
883 20
detours.h
in src/UndockedRegFreeWinRT/detours
834 1
modules.cpp
in src/UndockedRegFreeWinRT/detours
739 16
types.h
in src/tool/abi
720 80
flags.h
in src/library/impl/meta_reader
639 128
base_identity.h
in src/tool/cppxlang/strings
605 50
metadata_cache.cpp
in src/tool/abi
589 12
helpers.h
in src/tool/python
588 51
database.h
in src/library/impl/meta_reader
545 14
typeresolution.cpp
in src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
540 14
type_writers.h
in src/tool/python
526 40
schema.h
in src/library/impl/meta_reader
515 63
base_string.h
in src/tool/cppxlang/strings
457 55
helpers.h
in src/tool/cppxlang
446 29
signature.h
in src/library/impl/meta_reader
443 31
column.h
in src/library/impl/meta_reader
432 69
type_writers.h
in src/tool/cppxlang
431 22
dllmain.cpp
in src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
422 12
abi_writer.cpp
in src/tool/abi
409 20
text_writer.h
in src/library
406 35
base_array.h
in src/tool/cppxlang/strings
406 41
base_events.h
in src/tool/cppxlang/strings
391 29
catalog.cpp
in src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
355 14
table.h
in src/library/impl/meta_reader
342 20
pal.h
in src/platform/published
341 2
base_coroutine.h
in src/tool/cppxlang/strings
337 37
custom_attribute.h
in src/library/impl/meta_reader
324 9
base_error.h
in src/tool/cppxlang/strings
314 10
cmd_reader.h
in src/library
306 9
string_abi.cpp
in src/platform
294 6
enum.h
in src/library/impl/meta_reader
290 1
base_collections_input_iterable.h
in src/tool/cppxlang/strings
282 8
pe_writer.h
in src/library/impl/meta_writer
281 17
common_string_convert.cpp
in src/platform
275 14
main.cpp
in src/tool/cppxlang
273 7
base_windows.h
in src/tool/cppxlang/strings
273 22
base_meta.h
in src/tool/cppxlang/strings
272 7
common.h
in src/tool/abi
262 17
Files With Most Units (Top 20)
File# lines# units
catch.hpp
in src/UndockedRegFreeWinRT/Catch
12902 842
catch.hpp
in src/library
12902 842
mdExts.js
in src/scripts
3158 273
disasm.cpp
in src/UndockedRegFreeWinRT/detours
3232 181
flags.h
in src/library/impl/meta_reader
639 128
code_writers.h
in src/tool/cppxlang
2363 84
code_writers.h
in src/tool/python
1830 81
types.h
in src/tool/abi
720 80
base_implements.h
in src/tool/cppxlang/strings
1027 73
types.cpp
in src/tool/abi
1247 71
detours.cpp
in src/UndockedRegFreeWinRT/detours
1860 69
column.h
in src/library/impl/meta_reader
432 69
schema.h
in src/library/impl/meta_reader
515 63
image.cpp
in src/UndockedRegFreeWinRT/detours
1748 56
base_string.h
in src/tool/cppxlang/strings
457 55
pybase.h
in src/tool/python/strings
1035 54
helpers.h
in src/tool/python
588 51
base_identity.h
in src/tool/cppxlang/strings
605 50
base_array.h
in src/tool/cppxlang/strings
406 41
type_writers.h
in src/tool/python
526 40
Files With Long Lines (Top 20)

There are 102 files with lines longer than 120 characters. In total, there are 1334 long lines.

File# lines# units# long lines
catch.hpp
in src/UndockedRegFreeWinRT/Catch
12902 842 336
catch.hpp
in src/library
12902 842 336
mdExts.js
in src/scripts
3158 273 96
code_writers.h
in src/tool/python
1830 81 36
vcxproj
EmbeddedTestComponent.vcxproj
in src/UndockedRegFreeWinRT/EmbeddedTestComponent
224 - 34
enum_traits.h
in src/library/impl/meta_reader
153 - 32
targets
Microsoft.Windows.MidlRT.targets
in src/package/midlrt
222 - 30
vcxproj
TestComponent.vcxproj
in src/UndockedRegFreeWinRT/TestComponent
190 - 22
code_writers.h
in src/tool/cppxlang
2363 84 21
targets
Microsoft.Windows.AbiWinRT.targets
in src/package/abi
122 - 20
vcxproj
UndockedRegFreeWinRT.vcxproj
in src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
211 - 19
vcxproj
EmbeddedManifestTest.vcxproj
in src/UndockedRegFreeWinRT/EmbeddedManifestTest
207 - 15
vcxproj
UndockedRegFreeWinRTTest.vcxproj
in src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
214 - 15
base_identity.h
in src/tool/cppxlang/strings
605 50 14
database.h
in src/library/impl/meta_reader
545 14 12
vcxproj
ManifestParserTest.vcxproj
in src/UndockedRegFreeWinRT/ManifestParserTest
220 - 11
base_implements.h
in src/tool/cppxlang/strings
1027 73 11
Program.cs
in src/UndockedRegFreeWinRT/EmbeddedManifestManagedTest
143 8 10
base_collections_base.h
in src/tool/cppxlang/strings
261 29 10
base_collections_input_iterable.h
in src/tool/cppxlang/strings
282 8 10