facebookexperimental / reverie
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
  • 13% duplication:
    • 18,998 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,512 duplicated lines
  • 10,423 duplicates
system13% (2,512 lines)
Duplication per Extension
rs13% (2,512 lines)
Duplication per Component (primary)
reverie-ptrace/src15% (1,324 lines)
reverie-syscalls/src12% (590 lines)
reverie-process/src6% (239 lines)
reverie/src15% (132 lines)
reverie-examples15% (113 lines)
reverie-examples/strace24% (51 lines)
reverie-examples/chrome-trace13% (39 lines)
reverie-util/src11% (24 lines)
ROOT0% (0 lines)
reverie-process0% (0 lines)
reverie-util0% (0 lines)
reverie-ptrace0% (0 lines)
reverie-syscalls0% (0 lines)
reverie0% (0 lines)

Duplication Between Components (50+ lines)

G reverie-process/src reverie-process/src reverie-ptrace/src reverie-ptrace/src reverie-process/src--reverie-ptrace/src 761 reverie/src reverie/src reverie-process/src--reverie/src 271 reverie-syscalls/src reverie-syscalls/src reverie-process/src--reverie-syscalls/src 308 reverie-util/src reverie-util/src reverie-process/src--reverie-util/src 192 reverie-ptrace/src--reverie/src 723 reverie-ptrace/src--reverie-syscalls/src 723 reverie-ptrace/src--reverie-util/src 608 reverie-syscalls/src--reverie/src 228 reverie-syscalls/src--reverie-util/src 152 reverie-examples/strace reverie-examples/strace reverie-examples/strace--reverie-process/src 206 reverie-examples/strace--reverie-ptrace/src 652 reverie-examples/strace--reverie/src 156 reverie-examples/strace--reverie-syscalls/src 166 reverie-examples reverie-examples reverie-examples/strace--reverie-examples 114 reverie-examples/strace--reverie-util/src 62 reverie-examples--reverie-process/src 234 reverie-examples--reverie-ptrace/src 650 reverie-examples--reverie/src 164 reverie-examples--reverie-syscalls/src 195 reverie-examples/chrome-trace reverie-examples/chrome-trace reverie-examples--reverie-examples/chrome-trace 108 reverie-examples--reverie-util/src 88 reverie-examples/chrome-trace--reverie-process/src 200 reverie-examples/chrome-trace--reverie-ptrace/src 616 reverie-examples/chrome-trace--reverie/src 132 reverie-examples/chrome-trace--reverie-syscalls/src 160 reverie-examples/chrome-trace--reverie-examples/strace 84 reverie-examples/chrome-trace--reverie-util/src 56 reverie-util/src--reverie/src 124

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 10,423 duplicates...
Size#FoldersFilesLinesCode
31 x 2 reverie-ptrace/src/gdbstub/commands
reverie-ptrace/src/gdbstub
1:32 (7%)
1:32 (26%)
view
31 x 2 reverie-ptrace/src/gdbstub
reverie-ptrace/src/gdbstub
1:32 (26%)
1:32 (17%)
view
31 x 2 reverie-ptrace/src/gdbstub/commands
reverie-ptrace/src/gdbstub
1:32 (7%)
1:32 (17%)
view
31 x 2 reverie-ptrace/src/gdbstub
reverie-ptrace/src/gdbstub
1:32 (10%)
1:32 (26%)
view
31 x 2 reverie-ptrace/src/gdbstub
reverie-ptrace/src/gdbstub
1:32 (10%)
1:32 (17%)
view
31 x 2 reverie-ptrace/src/gdbstub/commands
reverie-ptrace/src/gdbstub
1:32 (7%)
1:32 (10%)
view
15 x 2 reverie-ptrace/src/trace
reverie-ptrace/src/trace
71:87 (6%)
103:119 (6%)
view
14 x 2 reverie-syscalls/src/memory
reverie-syscalls/src/memory
37:62 (5%)
177:202 (5%)
view
13 x 2 reverie-examples
reverie-examples
1:17 (36%)
1:18 (46%)
view
12 x 2 reverie-ptrace/src/cp
reverie/src
1:12 (75%)
1:12 (27%)
view
12 x 2 reverie-ptrace/src
reverie-ptrace/src
1:12 (6%)
1:12 (29%)
view
12 x 2 reverie-ptrace/src/cp
reverie-ptrace/src
1:12 (75%)
1:12 (6%)
view
12 x 2 reverie-ptrace/src/trace
reverie-ptrace/src/trace
267:278 (4%)
295:306 (4%)
view
12 x 2 reverie-examples/strace
reverie-ptrace/src
1:12 (28%)
1:12 (29%)
view
12 x 2 reverie-ptrace/src/cp
reverie/src
1:12 (75%)
1:12 (15%)
view
12 x 2 reverie-syscalls/src/args
reverie-syscalls/src/args
310:321 (3%)
374:385 (3%)
view
12 x 2 reverie-examples/strace
reverie/src
1:12 (28%)
1:12 (15%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (29%)
1:12 (15%)
view
12 x 2 reverie/src
reverie/src
1:12 (15%)
1:12 (27%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (6%)
1:12 (27%)
view
12 x 2 reverie-examples/strace
reverie-ptrace/src
1:12 (28%)
1:12 (6%)
view
12 x 2 reverie-examples/strace
reverie/src
1:12 (28%)
1:12 (27%)
view
12 x 2 reverie-examples/strace
reverie-ptrace/src
1:12 (28%)
1:12 (6%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (29%)
1:12 (27%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (6%)
1:12 (15%)
view
12 x 2 reverie-ptrace/src/cp
reverie-ptrace/src
1:12 (75%)
1:12 (6%)
view
12 x 2 reverie-examples/strace
reverie-ptrace/src/cp
1:12 (28%)
1:12 (75%)
view
12 x 2 reverie-syscalls/src
reverie-syscalls/src
320:334 (2%)
360:374 (2%)
view
12 x 2 reverie-ptrace/src
reverie-ptrace/src
1:12 (6%)
1:12 (6%)
view
12 x 2 reverie-ptrace/src
reverie-ptrace/src
1:12 (29%)
1:12 (6%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (6%)
1:12 (15%)
view
12 x 2 reverie-ptrace/src
reverie/src
1:12 (6%)
1:12 (27%)
view
12 x 2 reverie-ptrace/src/cp
reverie-ptrace/src
1:12 (75%)
1:12 (29%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (61%)
1:13 (26%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (61%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:14 (20%)
1:14 (44%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:14 (20%)
1:14 (44%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbst...ommands/section_offsets
1:13 (61%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (73%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbst...ommands/section_offsets
1:13 (45%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (73%)
1:13 (47%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbst...ommands/section_offsets
1:13 (61%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (61%)
1:13 (47%)
view
11 x 2 reverie-syscalls/src
reverie-syscalls/src/syscalls
13:23 (9%)
28:38 (<1%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/extended_mode
1:13 (73%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:14 (47%)
1:14 (37%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/monitor_cmd
1:13 (52%)
1:13 (52%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/extended_mode
1:13 (61%)
1:13 (61%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:13 (61%)
1:13 (55%)
view
11 x 2 reverie-ptrace/src/gdbstub/commands/base
reverie-ptrace/src/gdbstub/commands/base
1:14 (47%)
1:14 (44%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
6 x 2 reverie-syscalls/src/args
reverie-syscalls/src/args
460:467 
96:103 
view
6 x 2 reverie-syscalls/src/args
reverie-syscalls/src/args
78:85 
48:55 
view