microsoft / CCF
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 433 files with 60,125 lines of code.
    • 6 very long files (8,707 lines of code)
    • 19 long files (12,941 lines of code)
    • 58 medium size files (17,591 lines of codeclsfd_ftr_w_mp_ins)
    • 73 small files (10,048 lines of code)
    • 277 very small files (10,838 lines of code)
14% | 21% | 29% | 16% | 18%
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
h16% | 19% | 31% | 14% | 18%
cpp14% | 17% | 32% | 24% | 10%
tla0% | 95% | 0% | 0% | 4%
py0% | 32% | 0% | 49% | 18%
cmake0% | 44% | 15% | 7% | 32%
ts0% | 0% | 37% | 41% | 21%
yml0% | 0% | 0% | 0% | 100%
cfg0% | 0% | 0% | 0% | 100%
in0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
c0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src16% | 19% | 31% | 15% | 16%
tla0% | 92% | 0% | 0% | 7%
python0% | 41% | 0% | 41% | 16%
cmake0% | 45% | 16% | 7% | 30%
include0% | 0% | 35% | 26% | 38%
js0% | 0% | 37% | 41% | 21%
doc0% | 0% | 0% | 93% | 6%
getting_started0% | 0% | 0% | 0% | 100%
scripts0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
raft.h
in src/consensus/aft
2015 79
node_state.h
in src/node
1618 64
wrap.cpp
in src/js
1435 43
node_frontend.h
in src/node/rpc
1345 5
member_frontend.h
in src/node/rpc
1241 16
historical_queries.h
in src/node
1053 53
ledger.h
in src/host
935 29
store.h
in src/kv
918 44
tla
ccfraft.tla
in tla/raft_spec
849 -
channels.h
in src/node
790 28
tpcc_transactions.h
in src/apps/tpcc/app
747 39
perf_client.h
in src/perf_client
744 37
json.h
in src/ds
710 31
tcp.h
in src/host
709 50
history.h
in src/node
682 55
ccf_global.cpp
in src/apps/js_v8/tmpl
649 21
tla
ccfraft.tla
in tla/reduced_raft_spec
646 -
untyped_map.h
in src/kv
631 33
kv_types.h
in src/kv
626 21
ledger.py
in python/ccf
586 69
cmake
common.cmake
in cmake
582 -
js_generic_base.cpp
in src/apps/js_generic
570 11
v8_runner.cpp
in src/apps/js_v8
537 25
tls_endpoint.h
in src/enclave
518 23
wrap.h
in src/js
512 40
timing.h
in src/perf_client
479 14
frontend.h
in src/node/rpc
466 10
tpcc_tables.h
in src/apps/tpcc/app
461 9
champ_map.h
in src/ds
450 24
enclave.h
in src/enclave
444 4
js_v8_base.cpp
in src/apps/js_v8
439 9
tpcc_setup.h
in src/apps/tpcc/app
438 21
contiguous_set.h
in src/ds
428 21
crypto.cpp
in src/js
408 9
main.cpp
in src/host
386 2
genesis_gen.h
in src/node
380 21
request_authn_identity.cpp
in src/apps/js_v8/tmpl
378 24
serializer.h
in src/ds
366 27
openapi.h
in src/ds
365 14
share_manager.h
in src/node
353 16
http_parser.h
in src/http
351 25
node_connections.h
in src/host
342 14
generic_serialise_wrapper.h
in src/kv
342 25
http_sig.h
in src/http
333 9
ring_buffer.h
in src/ds
329 24
endpoint_registry.cpp
in src/endpoints
318 19
kv_map.cpp
in src/apps/js_v8/tmpl
316 17
jwt_key_auto_refresh.h
in src/node
303 8
key_pair.cpp
in src/crypto/openssl
298 16
rpc_sessions.h
in src/enclave
297 13
Files With Most Units (Top 20)
File# lines# units
raft.h
in src/consensus/aft
2015 79
ledger.py
in python/ccf
586 69
node_state.h
in src/node
1618 64
history.h
in src/node
682 55
historical_queries.h
in src/node
1053 53
tcp.h
in src/host
709 50
store.h
in src/kv
918 44
wrap.cpp
in src/js
1435 43
wrap.h
in src/js
512 40
tpcc_transactions.h
in src/apps/tpcc/app
747 39
perf_client.h
in src/perf_client
744 37
untyped_map.h
in src/kv
631 33
json.h
in src/ds
710 31
ledger.h
in src/host
935 29
channels.h
in src/node
790 28
serializer.h
in src/ds
366 27
v8_runner.cpp
in src/apps/js_v8
537 25
http_parser.h
in src/http
351 25
generic_serialise_wrapper.h
in src/kv
342 25
request_authn_identity.cpp
in src/apps/js_v8/tmpl
378 24
Files With Long Lines (Top 12)

There are 12 files with lines longer than 120 characters. In total, there are 21 long lines.

File# lines# units# long lines
tla
ccfraft.tla
in tla/raft_spec
849 - 9
split_ledger.py
in python/ccf
148 4 2
cmake
common.cmake
in cmake
582 - 1
cmake
version.cmake
in cmake
76 - 1
install.yml
in getting_started/setup_vm/roles/az_dcap/tasks
16 - 1
deb_install.yml
in getting_started/setup_vm/roles/ccf_install/tasks
19 - 1
install.yml
in getting_started/setup_vm/roles/llvm_repo/tasks
13 - 1
common.yml
in getting_started/setup_vm/roles/openenclave/vars
15 - 1
install.yml
in getting_started/setup_vm/roles/vegeta/tasks
17 - 1
ledger.py
in python/ccf
586 69 1
read_ledger.py
in python/ccf
152 10 1
tla
ccfraft.tla
in tla/reduced_raft_spec
646 - 1