aws-samples / connected-drink-dispenser-workshop
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 892 files with 191,958 lines of code.
    • 32 very long files (63,254 lines of code)
    • 53 long files (35,116 lines of code)
    • 151 medium size files (45,508 lines of codeclsfd_ftr_w_mp_ins)
    • 203 small files (28,077 lines of code)
    • 453 very small files (20,003 lines of code)
32% | 18% | 23% | 14% | 10%
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
h50% | 4% | 7% | 18% | 18%
c29% | 24% | 30% | 10% | 5%
py28% | 27% | 21% | 13% | 8%
S0% | 13% | 72% | 7% | 7%
s0% | 0% | 50% | 38% | 10%
cmake0% | 0% | 71% | 0% | 28%
vue0% | 0% | 27% | 40% | 32%
js0% | 0% | 37% | 36% | 26%
asm0% | 0% | 0% | 90% | 9%
cfg0% | 0% | 0% | 83% | 16%
html0% | 0% | 0% | 0% | 100%
inc0% | 0% | 0% | 0% | 100%
go0% | 0% | 0% | 0% | 100%
ps10% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
device_firmware/freertos_kernel35% | 9% | 25% | 16% | 12%
device_firmware/libraries34% | 27% | 20% | 11% | 6%
deploy/lambda_functions30% | 27% | 22% | 12% | 8%
deploy/cdd0% | 71% | 0% | 18% | 10%
device_firmware/tools0% | 0% | 47% | 26% | 26%
dispenser_app/src0% | 0% | 34% | 31% | 33%
deploy0% | 0% | 0% | 88% | 11%
deploy/source_files0% | 0% | 0% | 58% | 41%
device_firmware0% | 0% | 0% | 0% | 100%
dispenser_app/public0% | 0% | 0% | 0% | 100%
dispenser_app0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
ioat91sam7x256.h
in device_firmware/freertos_kernel/portable/GCC/ARM7_AT91SAM7S
3908 -
tasks.c
in device_firmware/freertos_kernel
3160 80
core.py
in deploy/lambda_functions/api_get_resources/asn1crypto
2845 182
iot_pkcs11_mbedtls.c
in device_firmware/libraries/abstractions/pkcs11/mbedtls
2534 21
FreeRTOS_Sockets.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
2511 46
lib_AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2468 355
lib_AT91SAM7X128.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2468 355
lib_AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/GCC/ARM7_AT91SAM7S
2468 355
AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/GCC/ARM7_AT91SAM7S
2299 -
aws_iot_ota_agent.c
in device_firmware/libraries/freertos_plus/aws/ota/src
2292 45
AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2285 -
AT91SAM7X128.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2285 -
yacc.py
in deploy/lambda_functions/api_get_resources/pycparser/ply
2111 107
FreeRTOS_TCP_IP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
2068 31
AT91SAM7X256_inc.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2016 -
AT91SAM7X128_inc.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2016 -
queue.c
in device_firmware/freertos_kernel
1911 49
backend.py
in deploy/lambda_functions/api_get_resources/cryptography/hazmat/backends/openssl
1898 135
x509.py
in deploy/lambda_functions/api_get_resources/asn1crypto
1821 100
iot_https_client.c
in device_firmware/libraries/c_sdk/standard/https/src
1797 49
lib_AT91SAM7S64.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
1765 248
AT91SAM7S64.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
1590 -
AT91SAM7S64_inc.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
1487 -
iot_mqtt_api.c
in device_firmware/libraries/c_sdk/standard/mqtt/src
1455 19
FreeRTOS_IP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
1437 45
recompiler.py
in deploy/lambda_functions/api_get_resources/cffi
1274 96
iot_ble_wifi_provisioning.c
in device_firmware/libraries/c_sdk/standard/ble/src/services/wifi_provisioning
1236 33
extensions.py
in deploy/lambda_functions/api_get_resources/cryptography/x509
1232 216
iot_mqtt_serialize.c
in device_firmware/libraries/c_sdk/standard/mqtt/src
1206 23
iot_ble_mqtt_serialize.c
in device_firmware/libraries/c_sdk/standard/mqtt/src
1195 29
FreeRTOS_TCP_WIN.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
1175 35
iot_taskpool.c
in device_firmware/libraries/c_sdk/standard/common/taskpool
1041 31
FreeRTOS_DNS.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
993 18
backend_ctypes.py
in deploy/lambda_functions/api_get_resources/cffi
953 74
base_services.py
in deploy/cdd
925 3
mpu_wrappers.c
in device_firmware/freertos_kernel/portable/Common
923 96
iot_mqtt_operation.c
in device_firmware/libraries/c_sdk/standard/mqtt/src
920 12
NetworkInterface.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source/portable/NetworkInterface/STM32Fxx
899 15
iot_ble_data_transfer.c
in device_firmware/libraries/c_sdk/standard/ble/src/services/mqtt_ble
841 22
stream_buffer.c
in device_firmware/freertos_kernel
831 25
c_parser.py
in deploy/lambda_functions/api_get_resources/pycparser
828 159
algos.py
in deploy/lambda_functions/api_get_resources/asn1crypto
825 17
vengine_cpy.py
in deploy/lambda_functions/api_get_resources/cffi
819 51
FreeRTOS.h
in device_firmware/freertos_kernel/include
793 -
c_ast.py
in deploy/lambda_functions/api_get_resources/pycparser
791 147
cparser.py
in deploy/lambda_functions/api_get_resources/cffi
739 33
aws_iot_shadow_api.c
in device_firmware/libraries/c_sdk/aws/shadow/src
738 19
lex.py
in deploy/lambda_functions/api_get_resources/pycparser/ply
719 42
NetworkInterface.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source/portable/NetworkInterface/ksz8851snl
714 16
iot_ble_gatt.c
in device_firmware/libraries/c_sdk/standard/ble/src
673 30
Files With Most Units (Top 20)
File# lines# units
lib_AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2468 355
lib_AT91SAM7X128.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
2468 355
lib_AT91SAM7X256.h
in device_firmware/freertos_kernel/portable/GCC/ARM7_AT91SAM7S
2468 355
lib_AT91SAM7S64.h
in device_firmware/freertos_kernel/portable/IAR/AtmelSAM7S64
1765 248
extensions.py
in deploy/lambda_functions/api_get_resources/cryptography/x509
1232 216
core.py
in deploy/lambda_functions/api_get_resources/asn1crypto
2845 182
c_parser.py
in deploy/lambda_functions/api_get_resources/pycparser
828 159
c_ast.py
in deploy/lambda_functions/api_get_resources/pycparser
791 147
backend.py
in deploy/lambda_functions/api_get_resources/cryptography/hazmat/backends/openssl
1898 135
yacc.py
in deploy/lambda_functions/api_get_resources/pycparser/ply
2111 107
x509.py
in deploy/lambda_functions/api_get_resources/asn1crypto
1821 100
recompiler.py
in deploy/lambda_functions/api_get_resources/cffi
1274 96
mpu_wrappers.c
in device_firmware/freertos_kernel/portable/Common
923 96
base.py
in deploy/lambda_functions/api_get_resources/cryptography/x509
417 84
tasks.c
in device_firmware/freertos_kernel
3160 80
backend_ctypes.py
in deploy/lambda_functions/api_get_resources/cffi
953 74
x509.py
in deploy/lambda_functions/api_get_resources/cryptography/hazmat/backends/openssl
443 65
model.py
in deploy/lambda_functions/api_get_resources/cffi
480 60
six.py
in deploy/lambda_functions/api_get_resources
652 60
util.py
in deploy/lambda_functions/api_get_resources/asn1crypto
302 60
Files With Long Lines (Top 20)

There are 289 files with lines longer than 120 characters. In total, there are 1930 long lines.

File# lines# units# long lines
aws_iot_ota_agent.c
in device_firmware/libraries/freertos_plus/aws/ota/src
2292 45 84
port.c
in device_firmware/freertos_kernel/portable/MPLAB/PIC24_dsPIC
204 6 55
iot_https_client.c
in device_firmware/libraries/c_sdk/standard/https/src
1797 49 54
tasks.c
in device_firmware/freertos_kernel
3160 80 51
FreeRTOS_TCP_IP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
2068 31 48
FreeRTOS_TCP_WIN.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
1175 35 40
FreeRTOS_Sockets.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
2511 46 38
mpu_prototypes.h
in device_firmware/freertos_kernel/include
107 - 33
FreeRTOS_IP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
1437 45 30
mpu_wrappers.c
in device_firmware/freertos_kernel/portable/Common
923 96 26
s
portasm.s
in device_firmware/freertos_kernel/portable/IAR/ARM_CM23/non_secure
343 - 21
s
portasm.s
in device_firmware/freertos_kernel/portable/ARMv8M/non_secure/portable/IAR/ARM_CM23
343 - 21
queue.c
in device_firmware/freertos_kernel
1911 49 20
s
portasm.s
in device_firmware/freertos_kernel/portable/IAR/ARM_CM33/non_secure
293 - 20
s
portasm.s
in device_firmware/freertos_kernel/portable/ARMv8M/non_secure/portable/IAR/ARM_CM33
293 - 20
FreeRTOS_DHCP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
633 8 20
queue.h
in device_firmware/freertos_kernel/include
92 - 19
iot_pkcs11_mbedtls.c
in device_firmware/libraries/abstractions/pkcs11/mbedtls
2534 21 19
FreeRTOS_ARP.c
in device_firmware/libraries/freertos_plus/standard/freertos_plus_tcp/source
402 12 19
afqp_check.py
in device_firmware/tools/checks/afqp/afqp_check/src
295 14 17