microsoft / terminal
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 1,930 files with 321,237 lines of code.
    • 53 very long files (95,271 lines of code)
    • 100 long files (68,153 lines of code)
    • 231 medium size files (73,119 lines of codeclsfd_ftr_w_mp_ins)
    • 299 small files (41,987 lines of code)
    • 1,247 very small files (42,707 lines of code)
29% | 21% | 22% | 13% | 13%
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
cpp36% | 24% | 24% | 9% | 5%
hpp29% | 20% | 19% | 14% | 15%
h20% | 17% | 20% | 16% | 25%
cmd74% | 0% | 0% | 12% | 13%
cs0% | 27% | 29% | 21% | 21%
xaml0% | 17% | 45% | 25% | 12%
cxx0% | 100% | 0% | 0% | 0%
ps10% | 0% | 37% | 36% | 26%
vcxproj0% | 0% | 18% | 20% | 60%
yml0% | 0% | 30% | 18% | 51%
psm10% | 0% | 100% | 0% | 0%
filters0% | 0% | 12% | 41% | 46%
cc0% | 0% | 77% | 0% | 22%
hlsl0% | 0% | 0% | 94% | 5%
inc0% | 0% | 0% | 35% | 64%
props0% | 0% | 0% | 43% | 56%
ipp0% | 0% | 0% | 100% | 0%
man0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
proj0% | 0% | 0% | 0% | 100%
natvis0% | 0% | 0% | 0% | 100%
targets0% | 0% | 0% | 0% | 100%
gn0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src/cascadia26% | 24% | 22% | 13% | 13%
oss/boost24% | 24% | 21% | 16% | 13%
src/host28% | 22% | 30% | 9% | 9%
src/terminal43% | 25% | 15% | 7% | 8%
dep/CLI11100% | 0% | 0% | 0% | 0%
oss/fmt66% | 19% | 12% | 1% | 1%
src/interactivity40% | 20% | 10% | 12% | 16%
dep/jsoncpp96% | 0% | 0% | 3% | 0%
src/renderer17% | 23% | 29% | 13% | 16%
oss/dynamic_bitset100% | 0% | 0% | 0% | 0%
src/buffer24% | 12% | 17% | 25% | 20%
src/tools16% | 20% | 23% | 17% | 21%
src/server30% | 0% | 14% | 24% | 30%
src/types17% | 16% | 33% | 13% | 19%
src/propsheet18% | 34% | 20% | 15% | 10%
src/til22% | 26% | 25% | 14% | 11%
src/tsf0% | 39% | 18% | 20% | 21%
oss/chromium0% | 25% | 48% | 19% | 6%
src/inc0% | 12% | 46% | 15% | 25%
oss/libpopcnt0% | 100% | 0% | 0% | 0%
build/Helix0% | 32% | 18% | 30% | 18%
src/propslib0% | 0% | 67% | 10% | 22%
dep/Console0% | 0% | 66% | 32% | 1%
src/winconpty0% | 0% | 73% | 0% | 26%
tools0% | 0% | 42% | 27% | 30%
build/pipelines0% | 0% | 30% | 18% | 51%
oss/interval_tree0% | 0% | 100% | 0% | 0%
build/scripts0% | 0% | 50% | 0% | 49%
doc/reference0% | 0% | 100% | 0% | 0%
scratch/ScratchIslandApp0% | 0% | 0% | 45% | 54%
src0% | 0% | 0% | 43% | 56%
res/terminal0% | 0% | 0% | 100% | 0%
tools/TestTableWriter0% | 0% | 0% | 100% | 0%
src/api-ms-win-core-synch-l1-2-00% | 0% | 0% | 71% | 28%
build/rules0% | 0% | 0% | 0% | 100%
tools/ReleaseEngineering0% | 0% | 0% | 0% | 100%
src/internal0% | 0% | 0% | 0% | 100%
oss/pcg0% | 0% | 0% | 0% | 100%
src/dep0% | 0% | 0% | 0% | 100%
build/pgo0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
dep/telemetry0% | 0% | 0% | 0% | 100%
dep/Win32K0% | 0% | 0% | 0% | 100%
src/staging0% | 0% | 0% | 0% | 100%
dep/NT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
CLI11.hpp
in dep/CLI11
7351 328
ScreenBufferTests.cpp
in src/host/ut_host
4668 93
jsoncpp.cpp
in dep/jsoncpp
4368 248
GeneratedUiaTextRangeMovementTests.g.cpp
in src/interactivity/win32/ut_interactivity_win32
4203 -
format.h
in oss/fmt/include/fmt
3095 307
OutputEngineTest.cpp
in src/terminal/parser/ut_parser
2765 65
ConptyRoundtripTests.cpp
in src/cascadia/UnitTests_TerminalCore
2443 41
format-inl.h
in oss/fmt/include/fmt
2342 96
TerminalPage.cpp
in src/cascadia/TerminalApp
2297 138
hashtable.hpp
in oss/boost/boost_1_73_0/boost/intrusive
2248 164
adapterTest.cpp
in src/terminal/adapter/ut_adapter
2105 57
string.hpp
in oss/boost/boost_1_73_0/boost/container
2097 132
vector.hpp
in oss/boost/boost_1_73_0/boost/container
2053 143
RemotingTests.cpp
in src/cascadia/UnitTests_Remoting
2025 61
TextBufferTests.cpp
in src/host/ut_host
1901 50
CommandlineTest.cpp
in src/cascadia/LocalTests_TerminalApp
1748 30
DeserializationTests.cpp
in src/cascadia/LocalTests_SettingsModel
1733 37
Pane.cpp
in src/cascadia/TerminalApp
1713 66
dynamic_bitset.hpp
in oss/dynamic_bitset
1671 55
CJK_DbcsTests.cpp
in src/host/ft_host
1606 37
TermControl.cpp
in src/cascadia/TerminalControl
1605 106
UiaTextRangeTests.cpp
in src/interactivity/win32/ut_interactivity_win32
1559 20
screenInfo.cpp
in src/host
1550 72
textBuffer.cpp
in src/buffer/out
1457 69
core.h
in oss/fmt/include/fmt
1450 167
cmd
ansi-color.cmd
in src/tools/ansi-color
1447 -
deque.hpp
in oss/boost/boost_1_73_0/boost/container
1436 118
DxRenderer.cpp
in src/renderer/dx
1347 27
stable_vector.hpp
in oss/boost/boost_1_73_0/boost/container
1326 103
adaptDispatch.cpp
in src/terminal/adapter
1317 104
ApiDispatchers.cpp
in src/server
1306 -
UiaTextRangeBase.cpp
in src/types
1284 42
VtRendererTests.cpp
in src/host/ut_host
1273 18
SettingsTests.cpp
in src/cascadia/LocalTests_TerminalApp
1262 11
flat_tree.hpp
in oss/boost/boost_1_73_0/boost/container/detail
1254 93
tree.hpp
in oss/boost/boost_1_73_0/boost/container/detail
1213 100
flat_map.hpp
in oss/boost/boost_1_73_0/boost/container
1210 181
ConsoleArgumentsTests.cpp
in src/host/ut_host
1196 13
bstree_algorithms.hpp
in oss/boost/boost_1_73_0/boost/intrusive
1180 43
getset.cpp
in src/host
1167 28
fontdlg.cpp
in src/propsheet
1155 13
InputEngineTest.cpp
in src/terminal/parser/ut_parser
1150 41
adaptive_sort_merge.hpp
in oss/boost/boost_1_73_0/boost/move/algo/detail
1134 13
bstree.hpp
in oss/boost/boost_1_73_0/boost/intrusive
1092 94
AtlasEngine.cpp
in src/renderer/atlas
1086 25
slist.hpp
in oss/boost/boost_1_73_0/boost/intrusive
1080 117
stateMachine.cpp
in src/terminal/parser
1063 87
TabTests.cpp
in src/cascadia/LocalTests_TerminalApp
1057 25
RectangleTests.cpp
in src/til/ut_til
1054 -
json.h
in dep/jsoncpp/json
1045 35
Files With Most Units (Top 20)
File# lines# units
CLI11.hpp
in dep/CLI11
7351 328
format.h
in oss/fmt/include/fmt
3095 307
jsoncpp.cpp
in dep/jsoncpp
4368 248
flat_map.hpp
in oss/boost/boost_1_73_0/boost/container
1210 181
core.h
in oss/fmt/include/fmt
1450 167
hashtable.hpp
in oss/boost/boost_1_73_0/boost/intrusive
2248 164
vector.hpp
in oss/boost/boost_1_73_0/boost/container
2053 143
TerminalPage.cpp
in src/cascadia/TerminalApp
2297 138
string.hpp
in oss/boost/boost_1_73_0/boost/container
2097 132
deque.hpp
in oss/boost/boost_1_73_0/boost/container
1436 118
slist.hpp
in oss/boost/boost_1_73_0/boost/intrusive
1080 117
chrono.h
in oss/fmt/include/fmt
896 111
JsonUtils.h
in src/cascadia/TerminalSettingsModel
859 110
TermControl.cpp
in src/cascadia/TerminalControl
1605 106
map.hpp
in oss/boost/boost_1_73_0/boost/container
858 105
adaptDispatch.cpp
in src/terminal/adapter
1317 104
stable_vector.hpp
in oss/boost/boost_1_73_0/boost/container
1326 103
tree.hpp
in oss/boost/boost_1_73_0/boost/container/detail
1213 100
format-inl.h
in oss/fmt/include/fmt
2342 96
settings.cpp
in src/host
631 96
Files With Long Lines (Top 20)

There are 744 files with lines longer than 120 characters. In total, there are 4824 long lines.

File# lines# units# long lines
xaml
CommonResources.xaml
in src/cascadia/TerminalSettingsEditor
813 - 94
CLI11.hpp
in dep/CLI11
7351 328 80
colorTable.cpp
in src/types
501 3 78
telemetry.cpp
in src/host
457 25 68
MTSMSettings.h
in src/cascadia/TerminalSettingsModel
77 - 67
CJK_DbcsTests.cpp
in src/host/ft_host
1606 37 63
UiaTextRangeTests.cpp
in src/interactivity/win32/ut_interactivity_win32
1559 20 60
Utils.h
in src/cascadia/TerminalSettingsEditor
99 4 55
AtlasEngine.cpp
in src/renderer/atlas
1086 25 55
SelectionApiTests.cs
in src/host/ft_uia
251 2 53
TerminalPage.h
in src/cascadia/TerminalApp
327 1 48
InputEngineTest.cpp
in src/terminal/parser/ut_parser
1150 41 44
ApiRoutinesTests.cpp
in src/host/ut_host
615 5 42
adaptive_node_pool_impl.hpp
in oss/boost/boost_1_73_0/boost/container/detail
986 40 40
TerminalPage.cpp
in src/cascadia/TerminalApp
2297 138 39
intel.hpp
in oss/boost/boost_1_73_0/boost/config/compiler
327 - 37
API_FileTests.cpp
in src/host/ft_host
544 22 37
API_DimensionsTests.cpp
in src/host/ft_host
317 12 36
ControlProperties.h
in src/cascadia/inc
55 - 35
has_member_function_callable_with.hpp
in oss/boost/boost_1_73_0/boost/intrusive/detail
251 14 34