facebookincubator / katran
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
  • 7% duplication:
    • 22,695 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,695 duplicated lines
  • 140 duplicates
system7% (1,695 lines)
Duplication per Extension
cpp8% (548 lines)
h7% (407 lines)
py4% (274 lines)
c24% (226 lines)
cmake10% (218 lines)
go1% (14 lines)
in21% (8 lines)
Duplication per Component (primary)
katran/lib7% (802 lines)
build/fbcode_builder5% (484 lines)
katran/decap31% (142 lines)
example_grpc19% (106 lines)
example21% (102 lines)
tools/xdpdump4% (29 lines)
cmake16% (16 lines)
tools/start_katran1% (7 lines)
example_grpc/goclient1% (7 lines)
tools/tcpdump_encap_helper0% (0 lines)
tools/wireshark0% (0 lines)
example/client0% (0 lines)
example_grpc/protos0% (0 lines)

Duplication Between Components (50+ lines)

G example example example_grpc example_grpc example--example_grpc 200 katran/decap katran/decap katran/lib katran/lib katran/decap--katran/lib 195 tools/xdpdump tools/xdpdump katran/lib--tools/xdpdump 50

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 140 duplicates...
Size#FoldersFilesLinesCode
35 x 2 example
example_grpc
40:80 (44%)
41:81 (42%)
view
21 x 2 katran/lib/bpf
katran/lib/bpf
272:296 (9%)
306:330 (9%)
view
20 x 2 katran/decap/testing
katran/decap/testing
54:82 (33%)
48:76 (37%)
view
18 x 2 katran/lib/linux_includes
katran/lib/linux_includes
3042:3067 (2%)
3297:3314 (2%)
view
15 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
171:185 (8%)
40:54 (15%)
view
14 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
722:735 (1%)
1208:1221 (1%)
view
14 x 2 katran/lib
katran/lib
238:259 (5%)
328:347 (5%)
view
13 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
78:92 (7%)
136:149 (7%)
view
13 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
1:13 (52%)
1:13 (38%)
view
13 x 2 katran/lib/bpf
katran/lib/bpf
49:63 (16%)
20:34 (54%)
view
13 x 2 katran/lib/bpf
tools/xdpdump
27:39 (15%)
46:58 (7%)
view
13 x 2 example
example_grpc
83:96 (16%)
108:122 (15%)
view
12 x 2 katran/lib/bpf
katran/lib/bpf
34:49 (46%)
31:43 (42%)
view
11 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
115:127 (4%)
180:192 (4%)
view
11 x 2 katran/decap/testing
katran/lib/testing
66:82 (18%)
127:145 (6%)
view
11 x 2 katran/decap/testing
katran/decap/testing
114:130 (18%)
100:116 (20%)
view
11 x 2 katran/decap/testing
katran/lib/testing
60:76 (20%)
127:145 (6%)
view
11 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
86:97 (6%)
53:64 (11%)
view
11 x 2 katran/lib/bpf
katran/lib/bpf
42:52 (3%)
310:320 (3%)
view
11 x 2 katran/lib/bpf
katran/lib/bpf
254:267 (4%)
322:335 (4%)
view
11 x 2 example
example_grpc
34:44 (39%)
34:44 (39%)
view
10 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
489:498 (1%)
501:510 (1%)
view
10 x 2 katran/decap/bpf
katran/lib/bpf
225:239 (6%)
758:772 (2%)
view
10 x 2 katran/lib/bpf
katran/lib/bpf
65:75 (12%)
27:37 (21%)
view
9 x 2 katran/decap/bpf
katran/lib/bpf
129:139 (6%)
361:371 (1%)
view
9 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
27:35 (5%)
29:38 (12%)
view
9 x 2 katran/lib
katran/lib
49:58 (29%)
57:66 (24%)
view
9 x 2 katran/decap/bpf
katran/lib/bpf
34:42 (6%)
168:176 (1%)
view
9 x 2 katran/lib/bpf
katran/lib/bpf
238:249 (4%)
308:317 (4%)
view
9 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
291:299 (1%)
328:336 (1%)
view
9 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
557:566 (1%)
221:230 (3%)
view
9 x 2 katran/lib/bpf
katran/lib/bpf
238:249 (4%)
274:283 (4%)
view
9 x 2 katran/decap/bpf
katran/lib/bpf
43:53 (6%)
178:188 (1%)
view
9 x 2 example_grpc
example_grpc
216:224 (2%)
277:285 (2%)
view
9 x 2 katran/lib
katran/lib
22:32 (29%)
21:31 (24%)
view
9 x 2 katran/lib
katran/lib
1343:1353 (<1%)
1385:1395 (<1%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
20:27 (2%)
621:628 (1%)
view
8 x 2 build/fbcode_builder
build/fbcode_builder
481:489 (<1%)
502:510 (<1%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
289:297 (1%)
310:318 (1%)
view
8 x 2 katran/lib
katran/lib
198:208 (3%)
305:315 (3%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
22:29 (<1%)
256:263 (<1%)
view
8 x 2 example
example_grpc
98:105 (10%)
124:131 (9%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
165:172 (6%)
176:183 (6%)
view
8 x 2 katran/lib
tools/xdpdump
70:77 (11%)
48:55 (19%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
22:29 (<1%)
521:528 (<1%)
view
8 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
117:124 (4%)
89:96 (8%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
22:29 (<1%)
180:187 (<1%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
22:29 (<1%)
15:22 (2%)
view
8 x 2 katran/lib
katran/lib
273:285 (3%)
356:367 (3%)
view
8 x 2 katran/lib
tools/xdpdump
70:77 (11%)
23:30 (19%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
10 x 2 example
example_grpc
70:81 
71:82 
view
6 x 2 tools/start_katran/start...start_katran/irq_parser
tools/start_katran/start...start_katran/affinitize
97:104 
47:54 
view