firebase / grpc-SwiftPM
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 2,492 files with 261,563 lines of code.
    • 33 very long files (59,521 lines of code)
    • 64 long files (42,431 lines of code)
    • 207 medium size files (62,427 lines of codeclsfd_ftr_w_mp_ins)
    • 284 small files (41,016 lines of code)
    • 1,904 very small files (56,168 lines of code)
22% | 16% | 23% | 15% | 21%
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
cc31% | 14% | 28% | 14% | 10%
h15% | 21% | 18% | 13% | 30%
yaml96% | 0% | 3% | 0% | <1%
gyp100% | 0% | 0% | 0% | 0%
py9% | 14% | 29% | 26% | 19%
c++100% | 0% | 0% | 0% | 0%
gemspec99% | 0% | 0% | 0% | <1%
gn100% | 0% | 0% | 0% | 0%
c0% | 35% | 28% | 20% | 16%
rb0% | 29% | 16% | 27% | 26%
cs0% | 9% | 22% | 21% | 46%
pxi0% | 12% | 37% | 21% | 28%
m0% | 10% | 39% | 14% | 35%
bzl0% | 0% | 52% | 25% | 22%
proto0% | 0% | 25% | 32% | 41%
php0% | 0% | 48% | 0% | 51%
go0% | 0% | 40% | 11% | 47%
targets0% | 0% | 67% | 0% | 32%
swift0% | 0% | 0% | 100% | 0%
cfg0% | 0% | 0% | 0% | 100%
cmake0% | 0% | 0% | 0% | 100%
xsl0% | 0% | 0% | 0% | 100%
css0% | 0% | 0% | 0% | 100%
in0% | 0% | 0% | 0% | 100%
ps10% | 0% | 0% | 0% | 100%
pyx0% | 0% | 0% | 0% | 100%
props0% | 0% | 0% | 0% | 100%
pxd0% | 0% | 0% | 0% | 100%
x0% | 0% | 0% | 0% | 100%
d0% | 0% | 0% | 0% | 100%
pub0% | 0% | 0% | 0% | 100%
yml0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
src21% | 16% | 25% | 16% | 20%
ROOT95% | 0% | 2% | <1% | 1%
tools18% | 3% | 27% | 24% | 26%
include0% | 32% | 21% | 13% | 32%
spm-cpp-include0% | 36% | 20% | 14% | 28%
spm-core-include0% | 23% | 24% | 10% | 42%
bazel0% | 0% | 59% | 20% | 20%
cmake0% | 0% | 0% | 0% | 100%
doc0% | 0% | 0% | 0% | 100%
SwiftPMTests0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
build.yaml
in root
6417 -
grpc_shadow_boringssl.h
in src/core/tsi
3282 -
client_channel.cc
in src/core/ext/filters/client_channel
3092 129
chttp2_transport.cc
in src/core/ext/transport/chttp2/transport
2900 98
gyp
grpc.gyp
in root
2764 -
route_components.upb.h
in src/core/ext/upb-generated/envoy/api/v2/route
2688 287
cpp_generator.cc
in src/compiler
2349 43
validate.upb.h
in src/core/ext/upb-generated/validate
1932 434
c++
Doxyfile.c++
in tools/doxygen
1868 -
ssl_transport_security.cc
in src/core/tsi
1805 66
xds_client.cc
in src/core/ext/filters/client_channel/xds
1727 73
call.cc
in src/core/lib/surface
1723 60
grpc.gemspec
in root
1613 -
descriptor.upb.h
in src/core/ext/upb-generated/google/protobuf
1533 263
gn
BUILD.gn
in root
1516 -
hpack_parser.cc
in src/core/ext/transport/chttp2/transport
1493 12
xds_api.cc
in src/core/ext/filters/client_channel/xds
1493 29
tcp_posix.cc
in src/core/lib/iomgr
1465 68
preprocessed_builds.yaml
in src/abseil-cpp
1410 -
server.cc
in src/core/lib/surface
1336 53
xds.cc
in src/core/ext/filters/client_channel/lb_policy/xds
1316 72
ev_epollex_linux.cc
in src/core/lib/iomgr
1314 45
cluster.upb.h
in src/core/ext/upb-generated/envoy/api/v2
1290 117
grpclb.cc
in src/core/ext/filters/client_channel/lb_policy/grpclb
1284 56
cronet_transport.cc
in src/core/ext/transport/cronet/transport
1264 34
scenario_config.py
in tools/run_tests/performance
1169 52
ev_poll_posix.cc
in src/core/lib/iomgr
1116 57
_channel.py
in src/python/grpcio/grpc
1100 115
completion_queue.cc
in src/core/lib/surface
1093 50
server_cc.cc
in src/cpp/server
1088 47
ev_epoll1_linux.cc
in src/core/lib/iomgr
1042 44
inproc_transport.cc
in src/core/ext/transport/inproc
1032 25
static_metadata.cc
in src/core/lib/transport
1007 5
grpc_csharp_ext.c
in src/csharp/ext
997 43
http_connection_manager.upb.h
in src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2
977 107
NativeMethods.Generated.cs
in src/csharp/Grpc.Core/Internal
966 3
client_stub_spec.rb
in src/ruby/spec/generic
910 37
subchannel.cc
in src/core/ext/filters/client_channel
882 54
python_generator.cc
in src/compiler
837 18
cert.upb.h
in src/core/ext/upb-generated/envoy/api/v2/auth
823 70
grpc_core_dependencies.py
in src/python/grpcio
813 -
_server.py
in src/python/grpcio/grpc
782 86
resource_quota.cc
in src/core/lib/iomgr
779 47
jwt_verifier.cc
in src/core/lib/security/credentials/jwt
773 18
grpc_ares_ev_driver_windows.cc
in src/core/ext/filters/client_channel/resolver/dns/c_ares
772 47
call_op_set.h
in include/grpcpp/impl/codegen
758 80
call_op_set.h
in spm-cpp-include/grpcpp/impl/codegen
758 80
client_callback_impl.h
in include/grpcpp/impl/codegen
748 88
client_callback_impl.h
in spm-cpp-include/grpcpp/impl/codegen
748 88
rb_call.c
in src/ruby/ext/grpc
745 34
Files With Most Units (Top 20)
File# lines# units
validate.upb.h
in src/core/ext/upb-generated/validate
1932 434
route_components.upb.h
in src/core/ext/upb-generated/envoy/api/v2/route
2688 287
descriptor.upb.h
in src/core/ext/upb-generated/google/protobuf
1533 263
client_channel.cc
in src/core/ext/filters/client_channel
3092 129
cluster.upb.h
in src/core/ext/upb-generated/envoy/api/v2
1290 117
_channel.py
in src/python/grpcio/grpc
1100 115
http_connection_manager.upb.h
in src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2
977 107
grpc_csharp_ext_dummy_stubs.c
in src/csharp/unitypackage/unitypackage_skeleton/Plugins/Grpc.Core/runtimes
414 103
chttp2_transport.cc
in src/core/ext/transport/chttp2/transport
2900 98
base.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
732 95
client_callback_impl.h
in include/grpcpp/impl/codegen
748 88
client_callback_impl.h
in spm-cpp-include/grpcpp/impl/codegen
748 88
_server.py
in src/python/grpcio/grpc
782 86
__init__.py
in src/python/grpcio/grpc
533 84
call_op_set.h
in include/grpcpp/impl/codegen
758 80
call_op_set.h
in spm-cpp-include/grpcpp/impl/codegen
758 80
grpc_service.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
567 76
xds_client.cc
in src/core/ext/filters/client_channel/xds
1727 73
handshaker.upb.h
in src/core/ext/upb-generated/src/proto/grpc/gcp
613 73
xds.cc
in src/core/ext/filters/client_channel/lb_policy/xds
1316 72
Files With Long Lines (Top 20)

There are 186 files with lines longer than 120 characters. In total, there are 5978 long lines.

File# lines# units# long lines
route_components.upb.h
in src/core/ext/upb-generated/envoy/api/v2/route
2688 287 911
descriptor.upb.h
in src/core/ext/upb-generated/google/protobuf
1533 263 508
http_connection_manager.upb.h
in src/core/ext/upb-generated/envoy/config/filter/network/http_connection_manager/v2
977 107 412
cluster.upb.h
in src/core/ext/upb-generated/envoy/api/v2
1290 117 388
NativeMethods.Generated.cs
in src/csharp/Grpc.Core/Internal
966 3 318
validate.upb.h
in src/core/ext/upb-generated/validate
1932 434 258
cert.upb.h
in src/core/ext/upb-generated/envoy/api/v2/auth
823 70 242
grpc_service.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
567 76 225
accesslog.upb.h
in src/core/ext/upb-generated/envoy/config/filter/accesslog/v2
634 53 218
health_check.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
598 64 193
base.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
732 95 156
listener_components.upb.h
in src/core/ext/upb-generated/envoy/api/v2/listener
477 45 150
handshaker.upb.h
in src/core/ext/upb-generated/src/proto/grpc/gcp
613 73 140
protocol.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
379 34 115
load_report.upb.h
in src/core/ext/upb-generated/envoy/api/v2/endpoint
283 38 100
listener.upb.h
in src/core/ext/upb-generated/envoy/api/v2
345 26 94
discovery.upb.h
in src/core/ext/upb-generated/envoy/api/v2
346 43 88
outlier_detection.upb.h
in src/core/ext/upb-generated/envoy/api/v2/cluster
284 21 80
config_source.upb.h
in src/core/ext/upb-generated/envoy/api/v2/core
278 25 67
endpoint.upb.h
in src/core/ext/upb-generated/envoy/api/v2
204 13 67