facebookresearch / salina
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 692 units with 8,479 lines of code in units (70.2% of code).
    • 16 very long units (2,297 lines of code)
    • 16 long units (1,106 lines of code)
    • 39 medium size units (1,146 lines of code)
    • 94 small units (1,381 lines of code)
    • 527 very small units (2,549 lines of code)
27% | 13% | 13% | 16% | 30%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
py27% | 13% | 13% | 16% | 30%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
salina_examples/rl40% | 11% | 6% | 13% | 27%
salina_cl/algorithms49% | 5% | 13% | 12% | 18%
salina_examples/computer_vision64% | 0% | 18% | 8% | 8%
salina_examples/offline_rl11% | 43% | 11% | 14% | 19%
salina_examples0% | 100% | 0% | 0% | 0%
salina/rl0% | 45% | 0% | 22% | 31%
salina_cl/scenarios0% | 10% | 26% | 15% | 47%
salina/agents0% | 5% | 32% | 27% | 34%
salina0% | 0% | 7% | 30% | 61%
salina_cl0% | 0% | 37% | 0% | 62%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
def sac_train()
in salina_cl/algorithms/sac_finetune/sac.py
218 20 9
def td3_train()
in salina_cl/algorithms/td3_finetune/td3.py
205 20 8
def run_td3()
in salina_examples/rl/td3/td3.py
188 10 5
def run_td3()
in salina_examples/rl/td3/td3_with_brax.py
181 10 5
def ppo_train()
in salina_cl/algorithms/ppo_finetune/ppo.py
154 21 7
def run_ppo()
in salina_examples/rl/ppo_brax/ppo.py
148 13 4
def run_ddpg()
in salina_examples/rl/ddpg/ddpg.py
144 10 4
def run_ppo()
in salina_examples/rl/ppo_brax_transformer/ppo.py
127 10 4
def run_a2c()
in salina_examples/rl/a2c/complete_with_async_eval/main.py
126 9 3
def run_ppo()
in salina_examples/rl/ppo_discrete/ppo.py
119 7 4
def main()
in salina_examples/computer_vision/mnist/mnist_spatial_transformer_network.py
118 6 0
def main()
in salina_examples/computer_vision/sequential_mnist/sequential_mnist_dataloader_torch_agent.py
117 6 0
def run_bc()
in salina_examples/offline_rl/decision_transformer/dt.py
115 9 5
def run_dqn()
in salina_examples/rl/dqn/double_dqn/dqn.py
113 10 3
def run_ppo()
in salina_examples/rl/ppo_continuous/ppo.py
113 9 4
def main()
in salina_examples/computer_vision/mnist/mnist_dataloader_torch_agent.py
111 6 0
def run_a2c()
in salina_examples/rl/a2c/complete/a2c.py
84 6 3
def run_bc()
in salina_examples/offline_rl/bc_on_full_episodes/bc_with_torch_amp.py
83 8 5
def run_bc()
in salina_examples/offline_rl/bc_on_full_episodes/bc.py
82 8 5
def run_a2c()
in salina_examples/rl/a2c/multi_cpus/main.py
82 5 1