apple / swift-protobuf
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 289 files with 190,315 lines of code.
    • 27 very long files (149,903 lines of code)
    • 19 long files (13,479 lines of code)
    • 45 medium size files (14,006 lines of codeclsfd_ftr_w_mp_ins)
    • 44 small files (6,527 lines of code)
    • 154 very small files (6,400 lines of code)
78% | 7% | 7% | 3% | 3%
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
swift83% | 5% | 6% | 2% | 2%
proto22% | 30% | 11% | 18% | 16%
js0% | 0% | 100% | 0% | 0%
h0% | 0% | 0% | 0% | 100%
py0% | 0% | 0% | 0% | 100%
awk0% | 0% | 0% | 0% | 100%
cc0% | 0% | 0% | 0% | 100%
cmake0% | 0% | 0% | 0% | 100%
css0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
Reference94% | 1% | 3% | <1% | <1%
Reference/google84% | 7% | 4% | 1% | 2%
Sources/SwiftProtobuf38% | 18% | 22% | 9% | 10%
FuzzTesting/Sources99% | 0% | 0% | 0% | <1%
Protos/google27% | 10% | 17% | 27% | 16%
Protos17% | 54% | 6% | 6% | 15%
Sources/Conformance0% | 79% | 0% | 20% | 0%
Reference/conformance0% | 100% | 0% | 0% | 0%
Sources/protoc-gen-swift0% | 0% | 59% | 31% | 9%
Sources/SwiftProtobufPluginLibrary0% | 0% | 71% | 0% | 28%
Performance/js0% | 0% | 100% | 0% | 0%
Protos/conformance0% | 0% | 0% | 100% | 0%
Performance0% | 0% | 0% | 35% | 64%
DevTools0% | 0% | 0% | 0% | 100%
Reference/SwiftProtobufPluginLibrary0% | 0% | 0% | 0% | 100%
cmake/modules0% | 0% | 0% | 0% | 100%
Protos/SwiftProtobufPluginLibrary0% | 0% | 0% | 0% | 100%
Performance/css0% | 0% | 0% | 0% | 100%
ROOT0% | 0% | 0% | 0% | 100%
FuzzTesting0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
generated_swift_names_enums.pb.swift
in Reference
26098 1740
generated_swift_names_messages.pb.swift
in Reference
26096 1740
unittest_swift_naming.pb.swift
in Reference
20055 1002
unittest_enormous_descriptor.pb.swift
in Reference/google/protobuf
14056 3
generated_swift_names_fields.pb.swift
in Reference
10484 3
unittest.pb.swift
in Reference/google/protobuf
9942 336
fuzz_testing.pb.swift
in FuzzTesting/Sources/FuzzCommon
4722 1
fuzz_testing.pb.swift
in Reference
4722 67
unittest_lite.pb.swift
in Reference/google/protobuf
4588 170
generated_swift_names_enum_cases.pb.swift
in Reference
4388 2
descriptor.pb.swift
in Reference/google/protobuf
2545 68
descriptor.pb.swift
in Sources/SwiftProtobuf
2545 2
unittest_custom_options.pb.swift
in Reference/google/protobuf
1946 117
unittest_swift_runtime_proto2.pb.swift
in Reference
1597 20
unittest_proto3_arena.pb.swift
in Reference/google/protobuf
1566 26
unittest_well_known_types.pb.swift
in Reference/google/protobuf
1429 11
unittest_proto3.pb.swift
in Reference/google/protobuf
1399 26
unittest_swift_runtime_proto3.pb.swift
in Reference
1366 14
unittest_proto3_arena_lite.pb.swift
in Reference/google/protobuf
1251 20
unittest_proto3_lite.pb.swift
in Reference/google/protobuf
1251 20
BinaryDecoder.swift
in Sources/SwiftProtobuf
1249 -
JSONScanner.swift
in Sources/SwiftProtobuf
1219 -
unittest_swift_all_required_types.pb.swift
in Reference
1139 13
proto
unittest_swift_naming.proto
in Protos
1137 -
TextFormatScanner.swift
in Sources/SwiftProtobuf
1067 1
proto
unittest_enormous_descriptor.proto
in Protos/google/protobuf
1043 -
proto
unittest.proto
in Protos/google/protobuf
1003 -
unittest_no_field_presence.pb.swift
in Reference/google/protobuf
924 13
proto
generated_swift_names_enum_cases.proto
in Protos
877 -
proto
generated_swift_names_enums.proto
in Protos
876 -
proto
generated_swift_names_fields.proto
in Protos
876 -
proto
generated_swift_names_messages.proto
in Protos
876 -
map_lite_unittest.pb.swift
in Reference/google/protobuf
876 24
map_unittest.pb.swift
in Reference/google/protobuf
838 24
unittest_swift_naming_no_prefix.pb.swift
in Reference
795 52
proto
descriptor.proto
in Protos/google/protobuf
774 -
TextFormatDecoder.swift
in Sources/SwiftProtobuf
678 54
JSONDecoder.swift
in Sources/SwiftProtobuf
649 58
conformance.pb.swift
in Reference/conformance
594 12
conformance.pb.swift
in Sources/Conformance
594 12
unittest_swift_fieldorder.pb.swift
in Reference
574 8
unittest_proto3_optional.pb.swift
in Reference/google/protobuf
570 15
ExtensionFields.swift
in Sources/SwiftProtobuf
543 4
type.pb.swift
in Reference/google/protobuf
525 16
type.pb.swift
in Sources/SwiftProtobuf
525 -
TextFormatEncodingVisitor.swift
in Sources/SwiftProtobuf
515 45
unittest_swift_reserved.pb.swift
in Reference
494 26
Descriptor.swift
in Sources/SwiftProtobufPluginLibrary
476 8
unittest_swift_extension.pb.swift
in Reference
465 26
unittest_swift_performance.pb.swift
in Reference
440 3
Files With Most Units (Top 20)
File# lines# units
generated_swift_names_enums.pb.swift
in Reference
26098 1740
generated_swift_names_messages.pb.swift
in Reference
26096 1740
unittest_swift_naming.pb.swift
in Reference
20055 1002
unittest.pb.swift
in Reference/google/protobuf
9942 336
unittest_lite.pb.swift
in Reference/google/protobuf
4588 170
unittest_custom_options.pb.swift
in Reference/google/protobuf
1946 117
descriptor.pb.swift
in Reference/google/protobuf
2545 68
fuzz_testing.pb.swift
in Reference
4722 67
JSONDecoder.swift
in Sources/SwiftProtobuf
649 58
BinaryEncodingSizeVisitor.swift
in Sources/SwiftProtobuf
377 56
Visitor.swift
in Sources/SwiftProtobuf
279 56
Decoder.swift
in Sources/SwiftProtobuf
75 55
TextFormatDecoder.swift
in Sources/SwiftProtobuf
678 54
unittest_swift_naming_no_prefix.pb.swift
in Reference
795 52
TextFormatEncodingVisitor.swift
in Sources/SwiftProtobuf
515 45
JSONEncodingVisitor.swift
in Sources/SwiftProtobuf
315 43
BinaryEncodingVisitor.swift
in Sources/SwiftProtobuf
274 39
HashVisitor.swift
in Sources/SwiftProtobuf
366 31
unittest_proto3.pb.swift
in Reference/google/protobuf
1399 26
unittest_proto3_arena.pb.swift
in Reference/google/protobuf
1566 26
Files With Long Lines (Top 20)

There are 106 files with lines longer than 120 characters. In total, there are 15767 long lines.

File# lines# units# long lines
unittest_enormous_descriptor.pb.swift
in Reference/google/protobuf
14056 3 9002
generated_swift_names_messages.pb.swift
in Reference
26096 1740 2593
proto
unittest_enormous_descriptor.proto
in Protos/google/protobuf
1043 - 1000
unittest_swift_naming.pb.swift
in Reference
20055 1002 490
fuzz_testing.pb.swift
in FuzzTesting/Sources/FuzzCommon
4722 1 434
fuzz_testing.pb.swift
in Reference
4722 67 434
unittest.pb.swift
in Reference/google/protobuf
9942 336 315
generated_swift_names_enums.pb.swift
in Reference
26098 1740 239
unittest_lite.pb.swift
in Reference/google/protobuf
4588 170 176
unittest_custom_options.pb.swift
in Reference/google/protobuf
1946 117 103
map_unittest.pb.swift
in Reference/google/protobuf
838 24 99
map_lite_unittest.pb.swift
in Reference/google/protobuf
876 24 94
unittest_swift_naming_no_prefix.pb.swift
in Reference
795 52 52
descriptor.pb.swift
in Sources/SwiftProtobuf
2545 2 49
unittest_swift_runtime_proto2.pb.swift
in Reference
1597 20 48
unittest_well_known_types.pb.swift
in Reference/google/protobuf
1429 11 45
unittest_swift_runtime_proto3.pb.swift
in Reference
1366 14 45
descriptor.pb.swift
in Reference/google/protobuf
2545 68 43
map_proto2_unittest.pb.swift
in Reference/google/protobuf
358 16 42
unittest_swift_extension.pb.swift
in Reference
465 26 23