awslabs / aws-c-common
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 392 files with 23,246 lines of code.
    • 1 very long files (1,110 lines of code)
    • 4 long files (2,688 lines of code)
    • 21 medium size files (6,390 lines of codeclsfd_ftr_w_mp_ins)
    • 25 small files (3,689 lines of code)
    • 341 very small files (9,369 lines of code)
4% | 11% | 27% | 15% | 40%
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
c7% | 12% | 30% | 12% | 36%
inl0% | 23% | 26% | 27% | 22%
h0% | 0% | 19% | 19% | 61%
cmake0% | 0% | 0% | 25% | 74%
py0% | 0% | 0% | 0% | 100%
cpp0% | 0% | 0% | 0% | 100%
in0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
source13% | 23% | 38% | 15% | 10%
include/aws/common0% | 12% | 17% | 25% | 45%
source/windows0% | 0% | 74% | 0% | 25%
source/posix0% | 0% | 69% | 0% | 30%
include/aws/testing0% | 0% | 100% | 0% | 0%
verification/cbmc/sources0% | 0% | 0% | 100% | 0%
cmake0% | 0% | 0% | 25% | 74%
source/arch/intel0% | 0% | 0% | 65% | 34%
verification/cbmc/stubs0% | 0% | 0% | 18% | 81%
source/android0% | 0% | 0% | 100% | 0%
verification/cbmc/proofs0% | 0% | 0% | 0% | 100%
verification/cbmc/include0% | 0% | 0% | 0% | 100%
source/arch/arm0% | 0% | 0% | 0% | 100%
AWSCRTAndroidTestRunner/app/src0% | 0% | 0% | 0% | 100%
verification/cbmc/uninline0% | 0% | 0% | 0% | 100%
source/arch/generic0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
byte_buf.c
in source
1110 89
hash_table.c
in source
761 44
inl
lookup3.inl
in include/aws/common/private
718 11
date_time.c
in source
666 29
bus.c
in source
543 26
aws_test_harness.h
in include/aws/testing
455 8
memtrace.c
in source
422 17
logging.c
in source
403 23
allocator_sba.c
in source
356 14
system_info.c
in source/posix
347 19
file.c
in source/windows
343 11
string.c
in source
337 19
xml_parser.c
in source
332 11
inl
array_list.inl
in include/aws/common
331 22
common.c
in source
318 4
encoding.c
in source
302 14
thread.c
in source/posix
293 13
priority_queue.c
in source
293 19
thread.c
in source/windows
283 17
inl
linked_list.inl
in include/aws/common
277 16
system_info.c
in source/windows
240 15
allocator.c
in source
231 9
byte_buf.h
in include/aws/common
215 -
inl
math.inl
in include/aws/common
206 36
ring_buffer.c
in source
204 7
file.c
in source/posix
202 12
log_formatter.c
in source
198 6
cmake
AwsCFlags.cmake
in cmake
193 -
inl
atomics_msvc.inl
in include/aws/common
192 17
encoding_avx2.c
in source/arch/intel
189 9
task_scheduler.c
in source
188 12
thread_scheduler.c
in source
172 8
make_common_data_structures.c
in verification/cbmc/sources
172 18
logging.h
in include/aws/common
166 -
log_channel.c
in source
158 9
array_list.c
in source
156 6
aws_hash_table_no_slots_override.c
in verification/cbmc/stubs
146 10
error.c
in source
143 7
inl
atomics_gnu_old.inl
in include/aws/common
142 17
inl
math.fallback.inl
in include/aws/common
135 18
utils.c
in verification/cbmc/sources
135 17
assert.h
in include/aws/common
134 -
inl
atomics_gnu.inl
in include/aws/common
131 15
command_line_parser.c
in source
127 3
string.h
in include/aws/common
127 -
file.c
in source
125 6
error.h
in include/aws/common
121 -
inl
math.msvc.inl
in include/aws/common
115 18
hash_table.h
in include/aws/common
113 -
logging.c
in source/android
106 6
Files With Most Units (Top 20)
File# lines# units
byte_buf.c
in source
1110 89
hash_table.c
in source
761 44
inl
math.inl
in include/aws/common
206 36
date_time.c
in source
666 29
bus.c
in source
543 26
logging.c
in source
403 23
inl
array_list.inl
in include/aws/common
331 22
string.c
in source
337 19
system_info.c
in source/posix
347 19
priority_queue.c
in source
293 19
inl
math.fallback.inl
in include/aws/common
135 18
inl
math.msvc.inl
in include/aws/common
115 18
make_common_data_structures.c
in verification/cbmc/sources
172 18
memtrace.c
in source
422 17
thread.c
in source/windows
283 17
inl
atomics_msvc.inl
in include/aws/common
192 17
inl
atomics_gnu_old.inl
in include/aws/common
142 17
utils.c
in verification/cbmc/sources
135 17
inl
linked_list.inl
in include/aws/common
277 16
system_info.c
in source/windows
240 15
Files With Long Lines (Top 9)

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

File# lines# units# long lines
cmake
AwsCFlags.cmake
in cmake
193 - 4
predicates.h
in include/aws/common
16 - 4
cmake
AwsLibFuzzer.cmake
in cmake
40 - 3
cmake
AwsFeatureTests.cmake
in cmake
93 - 3
cmake
CPackConfig.cmake
in cmake
57 - 2
hash_table.c
in source
761 44 2
cmake
AwsSanitizers.cmake
in cmake
63 - 1
cmake
AwsCheckHeaders.cmake
in cmake
49 - 1
aws_test_harness.h
in include/aws/testing
455 8 1