facebookresearch / stochastic_gradient_push
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 38% duplication:
    • 2,721 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,037 duplicated lines
  • 32 duplicates
system38% (1,037 lines)
Duplication per Extension
py38% (1,037 lines)
Duplication per Component (primary)
ROOT67% (713 lines)
gossip15% (164 lines)
gossip/utils62% (73 lines)
experiment_utils43% (73 lines)
visualization4% (14 lines)

Duplication Between Components (50+ lines)

G experiment_utils experiment_utils gossip/utils gossip/utils experiment_utils--gossip/utils 146

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 32 duplicates...
Size#FoldersFilesLinesCode
57 x 2 experiment_utils
gossip/utils
metering.py
metering.py
13:80 (100%)
13:80 (100%)
view
50 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
200:259 (9%)
180:239 (9%)
view
30 x 2 gossip
gossip
ad_psgd.py
distributed.py
152:191 (10%)
237:276 (7%)
view
30 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
463:505 (5%)
433:475 (5%)
view
29 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
555:602 (5%)
578:622 (5%)
view
26 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
518:550 (5%)
541:573 (5%)
view
24 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
302:327 (4%)
278:303 (4%)
view
23 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
624:649 (4%)
652:677 (4%)
view
21 x 2 gossip
gossip
ad_psgd.py
distributed.py
373:404 (7%)
518:549 (5%)
view
18 x 2 ROOT
ROOT
gossip_sgd_adpsgd.py
gossip_sgd_adpsgd.py
486:505 (3%)
537:556 (3%)
view
17 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
110:126 (3%)
103:119 (3%)
view
16 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
54:74 (3%)
51:71 (3%)
view
16 x 2 experiment_utils
gossip/utils
helpers.py
helpers.py
18:41 (47%)
91:114 (28%)
view
15 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
428:448 (2%)
399:419 (2%)
view
15 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
518:533 (2%)
490:505 (2%)
view
15 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
263:279 (2%)
243:259 (2%)
view
14 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
654:669 (2%)
679:694 (2%)
view
13 x 2 gossip
gossip
ad_psgd.py
distributed.py
57:72 (4%)
87:102 (3%)
view
12 x 2 gossip
gossip
graph_manager.py
graph_manager.py
199:215 (6%)
246:262 (6%)
view
12 x 2 ROOT
ROOT
gossip_sgd.py
gossip_sgd_adpsgd.py
349:366 (2%)
322:339 (2%)
view
Duplicated Units
The list of top 7 duplicated units.
See data for all 7 unit duplicates...
Size#FoldersFilesLinesCode
16 x 2 gossip/utils
experiment_utils
metering.py
metering.py
0:0 
0:0 
view
18 x 2 gossip
gossip
ad_psgd.py
distributed.py
0:0 
0:0 
view
15 x 2 gossip/utils
experiment_utils
metering.py
metering.py
0:0 
0:0 
view
20 x 2 gossip/utils
experiment_utils
metering.py
metering.py
0:0 
0:0 
view
12 x 2 ROOT
ROOT
gossip_sgd_adpsgd.py
gossip_sgd.py
0:0 
0:0 
view
7 x 2 gossip/utils
experiment_utils
metering.py
metering.py
0:0 
0:0 
view
8 x 2 ROOT
ROOT
gossip_sgd_adpsgd.py
gossip_sgd.py
0:0 
0:0 
view