apple / foundationdb
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,107 files with 408,690 lines of code.
    • 87 very long files (240,472 lines of code)
    • 87 long files (59,230 lines of code)
    • 195 medium size files (58,745 lines of codeclsfd_ftr_w_mp_ins)
    • 184 small files (26,913 lines of code)
    • 554 very small files (23,330 lines of code)
58% | 14% | 14% | 6% | 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
cpp61% | 14% | 14% | 5% | 3%
c96% | 2% | <1% | <1% | <1%
h38% | 21% | 20% | 10% | 9%
cs57% | 0% | 11% | 17% | 12%
hpp78% | 0% | 13% | 0% | 7%
cmake31% | 11% | 37% | 2% | 17%
py13% | 22% | 37% | 8% | 17%
java0% | 26% | 25% | 22% | 24%
go0% | 25% | 36% | 24% | 14%
rb0% | 58% | 12% | 0% | 28%
css0% | 92% | 0% | 0% | 7%
html0% | 76% | 0% | 23% | 0%
js0% | 0% | 100% | 0% | 0%
cc0% | 0% | 67% | 0% | 32%
S0% | 0% | 33% | 66% | 0%
inc0% | 0% | 0% | 56% | 43%
in0% | 0% | 0% | 34% | 65%
wixproj0% | 0% | 0% | 0% | 100%
bash0% | 0% | 0% | 0% | 100%
targets0% | 0% | 0% | 0% | 100%
wxs0% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
fdbserver73% | 10% | 9% | 3% | 2%
fdbclient49% | 17% | 19% | 6% | 7%
flow51% | 18% | 13% | 10% | 5%
contrib62% | 12% | 11% | 8% | 5%
fdbrpc37% | 22% | 23% | 9% | 7%
bindings14% | 32% | 28% | 8% | 15%
fdbbackup78% | 0% | 19% | 0% | 2%
fdbcli45% | 11% | 12% | 21% | 9%
fdbmonitor98% | 0% | 0% | 0% | 1%
FDBLibTLS46% | 0% | 38% | 7% | 7%
fdbservice0% | 75% | 0% | 18% | 6%
packaging0% | 42% | 27% | 8% | 20%
design0% | 76% | 0% | 23% | 0%
cmake0% | 20% | 53% | 4% | 21%
layers0% | 0% | 68% | 19% | 12%
recipes0% | 0% | 13% | 39% | 47%
fdbkubernetesmonitor0% | 0% | 38% | 40% | 20%
flowbench0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
sqlite3.amalgamation.c
in fdbserver/sqlite
68429 1753
VersionedBTree.actor.cpp
in fdbserver
7835 385
NativeAPI.actor.cpp
in fdbclient
6471 199
storageserver.actor.cpp
in fdbserver
5667 165
DataDistribution.actor.cpp
in fdbserver
5610 160
btree.c
in fdbserver/sqlite
5503 152
FileBackupAgent.actor.cpp
in fdbclient
4599 228
backup.actor.cpp
in fdbbackup
3796 52
Platform.actor.cpp
in flow
3414 114
TLogServer.actor.cpp
in fdbserver
2916 76
Status.actor.cpp
in fdbserver
2858 44
ClusterController.actor.h
in fdbserver
2799 52
OldTLogServer_6_2.actor.cpp
in fdbserver
2798 72
DatabaseBackupAgent.actor.cpp
in fdbclient
2748 113
TagPartitionedLogSystem.actor.cpp
in fdbserver
2723 73
xxhash.h
in flow
2667 131
ClusterController.actor.cpp
in fdbserver
2520 72
shell.c
in fdbserver/sqlite
2438 39
OldTLogServer_6_0.actor.cpp
in fdbserver
2404 65
worker.actor.cpp
in fdbserver
2334 54
core.h
in contrib/fmt-8.0.1/include/fmt
2286 271
format-inl.h
in contrib/fmt-8.0.1/include/fmt
2211 98
fdbcli.actor.cpp
in fdbcli
2206 51
sim2.actor.cpp
in fdbrpc
2200 131
format.h
in contrib/fmt-8.0.1/include/fmt
2193 193
MultiVersionTransaction.actor.cpp
in fdbclient
2171 140
ManagementAPI.actor.cpp
in fdbclient
2146 56
SpecialKeySpace.actor.cpp
in fdbclient
2138 101
ReadYourWrites.actor.cpp
in fdbclient
2086 76
eio.c
in fdbrpc/libeio
2031 76
BlobWorker.actor.cpp
in fdbserver
2005 34
fdbserver.actor.cpp
in fdbserver
1954 24
SimulatedCluster.actor.cpp
in fdbserver
1951 46
template_fdb.h
in fdbserver
1846 -
KeyValueStoreSQLite.actor.cpp
in fdbserver
1837 100
ConsistencyCheck.actor.cpp
in fdbserver/workloads
1823 27
sqliteInt.h
in fdbserver/sqlite
1789 -
CommitProxyServer.actor.cpp
in fdbserver
1726 37
Net2.actor.cpp
in flow
1700 120
document.h
in fdbclient/rapidjson
1687 190
rapidxml.hpp
in fdbclient/rapidxml
1675 60
genericactors.actor.h
in flow
1668 157
schema.h
in fdbclient/rapidjson
1633 96
sse2neon.h
in flow
1592 210
ClusterRecovery.actor.cpp
in fdbserver
1563 32
StorageCache.actor.cpp
in fdbserver
1540 47
SimpleIni.h
in fdbmonitor
1535 76
tester.actor.cpp
in fdbserver
1522 54
cmake
Program.cs.cmake
in contrib/TestHarness
1499 -
reader.h
in fdbclient/rapidjson
1479 59
Files With Most Units (Top 20)
File# lines# units
sqlite3.amalgamation.c
in fdbserver/sqlite
68429 1753
VersionedBTree.actor.cpp
in fdbserver
7835 385
core.h
in contrib/fmt-8.0.1/include/fmt
2286 271
FileBackupAgent.actor.cpp
in fdbclient
4599 228
sse2neon.h
in flow
1592 210
NativeAPI.actor.cpp
in fdbclient
6471 199
format.h
in contrib/fmt-8.0.1/include/fmt
2193 193
document.h
in fdbclient/rapidjson
1687 190
impl.py
in bindings/python/fdb
1233 178
storageserver.actor.cpp
in fdbserver
5667 165
DataDistribution.actor.cpp
in fdbserver
5610 160
genericactors.actor.h
in flow
1668 157
btree.c
in fdbserver/sqlite
5503 152
flow.h
in flow
1081 149
MultiVersionTransaction.actor.cpp
in fdbclient
2171 140
chrono.h
in contrib/fmt-8.0.1/include/fmt
1050 131
sim2.actor.cpp
in fdbrpc
2200 131
xxhash.h
in flow
2667 131
Arena.h
in flow
1202 129
FDBTypes.h
in fdbclient
945 121
Files With Long Lines (Top 20)

There are 98 files with lines longer than 120 characters. In total, there are 804 long lines.

File# lines# units# long lines
ServerKnobs.cpp
in fdbclient
632 1 220
cmake
Program.cs.cmake
in contrib/TestHarness
1499 - 88
ActorCompiler.cs
in flow/actorcompiler
1190 60 60
bindingtester.py
in bindings/bindingtester
357 18 32
cmake
FDBInstaller.wxs.cmake
in packaging/msi
375 - 30
DirectoryLayer.java
in bindings/java/src/main/com/apple/foundationdb/directory
654 55 21
sqlite3.amalgamation.c
in fdbserver/sqlite
68429 1753 20
Knobs.cpp
in flow
336 15 16
ActorParser.cs
in flow/actorcompiler
1029 54 15
ClientKnobs.cpp
in fdbclient
208 1 14
main.go
in fdbkubernetesmonitor
159 3 14
apiversioner.py
in contrib
153 5 13
impl.py
in bindings/python/fdb
1233 178 12
fdbimpl.rb
in bindings/ruby/lib
821 95 11
transaction_profiling_analyzer.py
in contrib/transaction_profiling_analyzer
779 58 11
AsyncUtil.java
in bindings/java/src/main/com/apple/foundationdb/async
236 24 10
directory_impl.py
in bindings/python/fdb
389 63 10
proxy_model.py
in contrib/grv_proxy_model
227 43 9
error_definitions.h
in flow
226 - 9
directoryLayer.go
in bindings/go/src/fdb/directory
465 26 8