hhvm / hhvm-third-party
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
  • 25% duplication:
    • 161,009 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 40,610 duplicated lines
  • 124,692 duplicates
system25% (40,610 lines)
Duplication per Extension
cpp40% (13,859 lines)
c26% (13,631 lines)
h16% (7,820 lines)
in33% (2,662 lines)
html14% (2,002 lines)
rl24% (256 lines)
cc12% (226 lines)
tex4% (132 lines)
awk17% (22 lines)
Duplication per Component (primary)
ragel/src/ragel38% (15,967 lines)
libmbfl/filters22% (11,123 lines)
pcre18% (5,209 lines)
pcre/sljit22% (3,328 lines)
pcre/doc/html14% (2,002 lines)
ragel/src/aapl37% (1,086 lines)
libmbfl/mbfl15% (538 lines)
ragel/src/doc12% (531 lines)
ragel/src56% (498 lines)
ragel/src/contrib61% (328 lines)
libmbfl/nls0% (0 lines)
libmbfl0% (0 lines)
pcre/cmake0% (0 lines)
libsqlite30% (0 lines)

Duplication Between Components (50+ lines)

G pcre pcre ragel/src ragel/src pcre--ragel/src 872 ragel/src/aapl ragel/src/aapl pcre--ragel/src/aapl 494 ragel/src/ragel ragel/src/ragel pcre--ragel/src/ragel 646 ragel/src/contrib ragel/src/contrib pcre--ragel/src/contrib 366 ragel/src/doc ragel/src/doc pcre--ragel/src/doc 552 ragel/src--ragel/src/aapl 590 ragel/src--ragel/src/ragel 576 ragel/src--ragel/src/contrib 478 ragel/src--ragel/src/doc 574 ragel/src/aapl--ragel/src/ragel 704 ragel/src/aapl--ragel/src/contrib 646 ragel/src/aapl--ragel/src/doc 630 ragel/src/contrib--ragel/src/ragel 576 ragel/src/contrib--ragel/src/doc 640 ragel/src/doc--ragel/src/ragel 560 libmbfl/filters libmbfl/filters libmbfl/mbfl libmbfl/mbfl libmbfl/filters--libmbfl/mbfl 102

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 124,692 duplicates...
Size#FoldersFilesLinesCode
432 x 2 libmbfl/filters
libmbfl/filters
695:1196 (8%)
645:1111 (9%)
view
378 x 2 libmbfl/filters
libmbfl/filters
247:686 (7%)
229:637 (8%)
view
126 x 2 pcre/doc/html
pcre/doc/html
715:840 (4%)
168:293 (25%)
view
121 x 2 ragel/src/aapl
ragel/src/ragel
111:231 (28%)
180:300 (8%)
view
104 x 2 ragel/src/contrib
ragel/src/doc
107:210 (29%)
162:265 (20%)
view
103 x 2 ragel/src/doc
ragel/src/ragel
163:265 (20%)
198:300 (7%)
view
103 x 2 ragel/src/contrib
ragel/src/ragel
108:210 (29%)
198:300 (7%)
view
103 x 2 ragel/src/aapl
ragel/src/doc
129:231 (24%)
163:265 (20%)
view
103 x 2 ragel/src/aapl
ragel/src/contrib
129:231 (24%)
108:210 (29%)
view
102 x 2 ragel/src
ragel/src/doc
220:321 (13%)
164:265 (20%)
view
102 x 2 ragel/src
ragel/src/ragel
220:321 (13%)
199:300 (7%)
view
102 x 2 ragel/src
ragel/src/aapl
220:321 (13%)
130:231 (24%)
view
102 x 2 ragel/src
ragel/src/contrib
220:321 (13%)
109:210 (29%)
view
94 x 2 libmbfl/filters
libmbfl/filters
134:241 (28%)
107:214 (36%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
755:869 (12%)
910:1024 (13%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
707:821 (12%)
910:1024 (13%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
755:869 (12%)
694:808 (12%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
755:869 (12%)
707:821 (12%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
694:808 (12%)
910:1024 (13%)
view
87 x 2 ragel/src/ragel
ragel/src/ragel
707:821 (12%)
694:808 (12%)
view
86 x 2 ragel/src/ragel
ragel/src/ragel
707:818 (12%)
862:973 (8%)
view
86 x 2 ragel/src/ragel
ragel/src/ragel
862:973 (8%)
910:1021 (13%)
view
86 x 2 ragel/src/ragel
ragel/src/ragel
755:866 (12%)
862:973 (8%)
view
86 x 2 ragel/src/ragel
ragel/src/ragel
862:973 (8%)
694:805 (12%)
view
84 x 2 ragel/src/ragel
ragel/src/ragel
789:902 (15%)
1003:1116 (12%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
181:295 (52%)
181:295 (52%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (31%)
183:290 (30%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (31%)
183:290 (30%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (31%)
183:290 (31%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (31%)
252:359 (24%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (31%)
252:359 (24%)
view
82 x 2 ragel/src/ragel
ragel/src/ragel
183:290 (30%)
252:359 (24%)
view
77 x 2 libmbfl/filters
libmbfl/filters
286:408 (8%)
165:287 (16%)
view
77 x 2 ragel/src/aapl
ragel/src/ragel
275:357 (18%)
1321:1403 (5%)
view
73 x 2 ragel/src
ragel/src/contrib
1:78 (9%)
1:77 (20%)
view
73 x 2 ragel/src/contrib
ragel/src/ragel
1:77 (20%)
1:78 (5%)
view
73 x 2 ragel/src
ragel/src/aapl
1:78 (9%)
1:78 (17%)
view
73 x 2 ragel/src/aapl
ragel/src/contrib
1:78 (17%)
1:77 (20%)
view
73 x 2 ragel/src/aapl
ragel/src/ragel
1:78 (17%)
1:78 (5%)
view
73 x 2 ragel/src
ragel/src/ragel
1:78 (9%)
1:78 (5%)
view
70 x 2 pcre
pcre
2138:2221 (1%)
2283:2366 (1%)
view
70 x 2 ragel/src/ragel
ragel/src/ragel
266:361 (30%)
270:365 (30%)
view
69 x 2 ragel/src/ragel
ragel/src/ragel
319:417 (29%)
362:460 (25%)
view
69 x 2 libmbfl/filters
libmbfl/filters
969:1062 (7%)
491:584 (15%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
544:633 (12%)
569:658 (12%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
553:642 (12%)
546:635 (12%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
546:635 (12%)
569:658 (12%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
553:642 (12%)
569:658 (12%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
544:633 (12%)
546:635 (12%)
view
68 x 2 ragel/src/ragel
ragel/src/ragel
544:633 (12%)
553:642 (12%)
view
Duplicated Units
The list of top 50 duplicated units.
See data for all 101 unit duplicates...
Size#FoldersFilesLinesCode
98 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
751:870 
703:822 
906:1025 
view
94 x 2 ragel/src/ragel
ragel/src/ragel
179:296 
179:296 
view
92 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
181:291 
249:360 
181:291 
view
77 x 2 libmbfl/filters
libmbfl/filters
489:585 
967:1063 
view
76 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
565:659 
549:643 
540:634 
view
74 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
256:349 
255:348 
255:348 
view
70 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
235:320 
152:237 
152:237 
view
61 x 2 ragel/src/ragel
ragel/src/ragel
362:438 
368:444 
view
60 x 2 libmbfl/filters
libmbfl/filters
587:661 
1065:1139 
view
47 x 2 ragel/src/ragel
ragel/src/ragel
865:918 
881:934 
view
44 x 2 libmbfl/filters
libmbfl/filters
278:328 
382:432 
view
39 x 2 ragel/src/ragel
ragel/src/ragel
382:435 
374:427 
view
36 x 2 ragel/src/ragel
ragel/src/ragel
645:700 
645:700 
view
34 x 2 ragel/src/ragel
ragel/src/ragel
61:108 
162:209 
view
31 x 2 ragel/src/ragel
ragel/src/ragel
482:525 
474:517 
view
30 x 2 ragel/src/ragel
ragel/src/ragel
160:203 
61:104 
view
26 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
665:696 
627:658 
627:658 
view
24 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
354:392 
317:355 
323:361 
view
23 x 2 ragel/src/ragel
ragel/src/ragel
306:335 
298:327 
view
22 x 2 libmbfl/filters
libmbfl/filters
216:242 
230:256 
view
22 x 5 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
690:732 
659:701 
949:991 
687:729 
767:809 
view
20 x 2 libmbfl/filters
libmbfl/filters
186:208 
93:115 
view
20 x 2 libmbfl/filters
libmbfl/filters
232:254 
126:148 
view
20 x 2 ragel/src/ragel
ragel/src/ragel
153:177 
153:177 
view
19 x 2 ragel/src/ragel
ragel/src/ragel
68:91 
79:102 
view
19 x 2 ragel/src/ragel
ragel/src/ragel
439:462 
84:107 
view
18 x 6 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
736:761 
30:55 
392:417 
30:55 
30:55 
33:58 
view
18 x 5 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
32:57 
30:55 
530:555 
30:55 
30:55 
view
17 x 2 ragel/src/ragel
ragel/src/ragel
1516:1540 
362:386 
view
16 x 2 libmbfl/filters
libmbfl/filters
330:348 
330:348 
view
16 x 2 ragel/src/ragel
ragel/src/ragel
418:437 
63:82 
view
16 x 2 pcre/sljit
pcre/sljit
885:906 
978:999 
view
15 x 6 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
368:385 
603:620 
264:281 
627:644 
536:553 
606:623 
view
15 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
420:440 
646:666 
625:645 
view
15 x 2 ragel/src/ragel
ragel/src/ragel
48:66 
59:77 
view
15 x 2 ragel/src/ragel
ragel/src/ragel
464:482 
109:127 
view
14 x 2 ragel/src/ragel
ragel/src/ragel
93:110 
104:121 
view
14 x 2 ragel/src/ragel
ragel/src/ragel
437:456 
429:448 
view
14 x 2 ragel/src/ragel
ragel/src/ragel
51:70 
48:67 
view
14 x 2 ragel/src/ragel
ragel/src/ragel
91:107 
97:113 
view
13 x 4 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
1625:1643 
588:606 
463:481 
567:585 
view
12 x 2 libmbfl/filters
libmbfl/filters
91:105 
167:181 
view
12 x 2 libmbfl/filters
libmbfl/filters
114:128 
203:217 
view
12 x 2 ragel/src/ragel
ragel/src/ragel
322:335 
349:362 
view
12 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
336:351 
299:314 
305:320 
view
11 x 2 ragel/src/ragel
ragel/src/ragel
304:319 
1260:1274 
view
11 x 2 ragel/src/ragel
ragel/src/ragel
458:479 
450:471 
view
11 x 3 ragel/src/ragel
ragel/src/ragel
ragel/src/ragel
241:254 
240:253 
240:253 
view
11 x 2 ragel/src/ragel
ragel/src/ragel
489:501 
49:61 
view
11 x 2 ragel/src/ragel
ragel/src/ragel
1119:1131 
1111:1123 
view