facebook / zstd
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
  • 19% duplication:
    • 52,190 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 10,216 duplicated lines
  • 1,156 duplicates
system19% (10,216 lines)
Duplication per Extension
c21% (8,737 lines)
vcxproj80% (1,143 lines)
h3% (238 lines)
yml22% (42 lines)
html1% (24 lines)
cpp2% (18 lines)
py1% (14 lines)
Duplication per Component (primary)
lib/legacy54% (6,602 lines)
build/VS201079% (1,010 lines)
lib/compress6% (775 lines)
lib/decompress11% (480 lines)
lib/dictBuilder12% (401 lines)
lib/common7% (276 lines)
programs3% (167 lines)
lib/dll93% (133 lines)
zlibWrapper6% (118 lines)
contrib/largeNbDicts7% (48 lines)
ROOT19% (42 lines)
contrib/linux-kernel12% (38 lines)
lib4% (24 lines)
doc1% (24 lines)
contrib/pzstd2% (24 lines)
contrib/seekable_format2% (14 lines)
doc/educational_decoder1% (14 lines)
contrib/freestanding_lib2% (14 lines)
lib/deprecated9% (12 lines)
contrib/recovery0% (0 lines)
contrib/match_finders0% (0 lines)
contrib/gen_html0% (0 lines)
contrib/snap0% (0 lines)
contrib/premake0% (0 lines)
contrib/diagnose_corruption0% (0 lines)
programs/windres0% (0 lines)
build/VS_scripts0% (0 lines)
build/cmake0% (0 lines)
build/meson0% (0 lines)
build/single_file_libs0% (0 lines)

Duplication Between Components (50+ lines)

G lib/common lib/common lib/legacy lib/legacy lib/common--lib/legacy 760 lib/decompress lib/decompress lib/common--lib/decompress 60 build/VS2010 build/VS2010 lib/dll lib/dll build/VS2010--lib/dll 647 lib/decompress--lib/legacy 346 contrib/linux-kernel contrib/linux-kernel contrib/linux-kernel--lib/common 76

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 1,156 duplicates...
Size#FoldersFilesLinesCode
308 x 2 lib/legacy
lib/legacy
2602:3207 (19%)
2241:2848 (22%)
view
229 x 2 lib/legacy
lib/legacy
64:812 (14%)
65:814 (16%)
view
227 x 2 lib/legacy
lib/legacy
1178:1635 (14%)
1179:1632 (16%)
view
206 x 2 lib/legacy
lib/legacy
1638:1953 (12%)
1635:1950 (14%)
view
147 x 2 lib/legacy
lib/legacy
1958:2187 (9%)
1955:2184 (10%)
view
144 x 2 lib/legacy
lib/legacy
1728:1933 (10%)
1879:2084 (8%)
view
144 x 2 lib/legacy
lib/legacy
1731:1936 (8%)
1879:2084 (8%)
view
108 x 2 lib/legacy
lib/legacy
2090:2241 (7%)
2237:2388 (6%)
view
105 x 2 lib/legacy
lib/legacy
1117:1298 (7%)
1094:1275 (6%)
view
100 x 2 lib/legacy
lib/legacy
2920:3050 (6%)
2687:2817 (6%)
view
100 x 2 lib/legacy
lib/legacy
2561:2691 (7%)
2687:2817 (6%)
view
87 x 2 lib/legacy
lib/legacy
3337:3476 (5%)
2978:3118 (6%)
view
84 x 2 lib/legacy
lib/legacy
59:319 (4%)
220:474 (3%)
view
84 x 2 build/VS2010/libzstd-dll
build/VS2010/libzstd
1:90 (40%)
1:90 (41%)
view
81 x 2 lib/legacy
lib/legacy
1939:2086 (5%)
2089:2234 (4%)
view
78 x 2 lib/legacy
lib/legacy
1178:1297 (4%)
1156:1275 (4%)
view
76 x 2 lib/legacy
lib/legacy
3209:3324 (4%)
2850:2965 (5%)
view
75 x 2 build/VS2010/fullbench-dll
lib/dll/example
1:95 (50%)
1:95 (52%)
view
74 x 2 lib/legacy
lib/legacy
1958:2089 (4%)
2105:2234 (4%)
view
71 x 2 lib/legacy
lib/legacy
2093:2187 (4%)
2237:2331 (4%)
view
70 x 2 lib/legacy
lib/legacy
65:257 (5%)
29:228 (4%)
view
70 x 2 lib/legacy
lib/legacy
64:256 (4%)
29:228 (4%)
view
58 x 2 lib/legacy
lib/legacy
1516:1629 (3%)
1673:1779 (3%)
view
58 x 2 lib/legacy
lib/legacy
1513:1626 (4%)
1673:1779 (3%)
view
55 x 2 build/VS2010/datagen
build/VS2010/fullbench
87:157 (42%)
87:157 (30%)
view
54 x 2 lib/legacy
lib/legacy
1317:1412 (3%)
1296:1391 (3%)
view
54 x 2 lib/legacy
lib/legacy
1316:1411 (3%)
1296:1391 (3%)
view
53 x 2 build/VS2010/fullbench-dll
build/VS2010/fullbench
25:92 (35%)
25:92 (29%)
view
53 x 2 build/VS2010/fullbench
lib/dll/example
25:92 (29%)
25:92 (37%)
view
52 x 2 lib/legacy
lib/legacy
305:416 (3%)
578:684 (3%)
view
52 x 2 lib/legacy
lib/legacy
307:419 (3%)
578:684 (3%)
view
50 x 2 lib/legacy
lib/legacy
1638:1727 (3%)
1787:1876 (3%)
view
50 x 2 lib/legacy
lib/legacy
1635:1724 (3%)
1787:1876 (3%)
view
44 x 2 lib/legacy
lib/legacy
420:546 (2%)
687:817 (2%)
view
44 x 2 lib/legacy
lib/legacy
423:548 (3%)
687:817 (2%)
view
42 x 2 lib/legacy
lib/legacy
644:746 (3%)
817:919 (2%)
view
42 x 2 lib/legacy
lib/legacy
642:744 (2%)
817:919 (2%)
view
42 x 2 lib/legacy
lib/legacy
1281:1329 (2%)
1225:1273 (1%)
view
37 x 2 lib/legacy
lib/legacy
1101:1173 (2%)
1102:1174 (2%)
view
36 x 2 lib/legacy
lib/legacy
1588:1637 (3%)
2577:2626 (2%)
view
36 x 2 lib/legacy
lib/legacy
1588:1637 (3%)
2936:2985 (2%)
view
36 x 2 lib/legacy
lib/legacy
1588:1637 (3%)
2703:2752 (2%)
view
35 x 2 lib/legacy
lib/legacy
2009:2048 (1%)
2391:2430 (1%)
view
35 x 2 lib/legacy
lib/legacy
1731:1770 (2%)
2093:2132 (2%)
view
35 x 2 lib/legacy
lib/legacy
2143:2182 (1%)
2518:2557 (1%)
view
35 x 2 lib/legacy
lib/legacy
1731:1770 (2%)
2090:2129 (2%)
view
35 x 2 lib/legacy
lib/legacy
2090:2129 (2%)
1879:1918 (2%)
view
35 x 2 build/VS2010/datagen
build/VS2010/fuzzer
25:69 (27%)
25:69 (19%)
view
35 x 2 lib/legacy
lib/legacy
1728:1767 (2%)
2090:2129 (2%)
view
35 x 2 lib/legacy
lib/legacy
2093:2132 (2%)
1728:1767 (2%)
view
Duplicated Units
The list of top 49 duplicated units.
See data for all 49 unit duplicates...
Size#FoldersFilesLinesCode
103 x 3 lib/legacy
lib/legacy
lib/legacy
1178:1288 
1179:1289 
1156:1266 
view
85 x 3 lib/legacy
lib/legacy
lib/legacy
2920:3019 
2561:2660 
2687:2786 
view
76 x 2 lib/legacy
lib/legacy
1717:1811 
1714:1808 
view
76 x 2 lib/legacy
lib/legacy
2079:2173 
2076:2170 
view
64 x 3 lib/legacy
lib/legacy
lib/legacy
1542:1618 
1539:1615 
1692:1768 
view
54 x 2 lib/legacy
lib/legacy
3414:3479 
3056:3121 
view
53 x 2 lib/legacy
lib/legacy
3103:3170 
2744:2811 
view
52 x 2 lib/legacy
lib/legacy
3039:3100 
2680:2741 
view
45 x 2 lib/legacy
lib/legacy
3263:3318 
2904:2959 
view
44 x 2 lib/legacy
lib/legacy
2868:2917 
2509:2558 
view
43 x 3 lib/legacy
lib/legacy
lib/legacy
1337:1404 
1338:1405 
1317:1384 
view
40 x 3 lib/legacy
lib/legacy
lib/legacy
1879:1925 
1876:1922 
2027:2073 
view
36 x 2 lib/legacy
lib/legacy
3335:3380 
2976:3021 
view
34 x 2 lib/legacy
lib/legacy
384:427 
387:430 
view
32 x 3 lib/legacy
lib/legacy
lib/legacy
1834:1875 
1831:1872 
1982:2023 
view
28 x 3 lib/legacy
lib/legacy
lib/legacy
464:494 
466:496 
731:761 
view
18 x 5 lib/legacy
lib/legacy
lib/legacy
lib/legacy
lib/legacy
753:772 
857:876 
350:369 
353:372 
624:643 
view
18 x 2 lib/legacy
lib/legacy
1311:1335 
1312:1336 
view
17 x 3 lib/legacy
lib/legacy
lib/legacy
1420:1444 
1421:1445 
1403:1427 
view
17 x 2 lib/legacy
lib/legacy
2216:2246 
2363:2393 
view
16 x 3 lib/legacy
lib/legacy
lib/legacy
2051:2075 
2048:2072 
2198:2222 
view
15 x 2 lib/legacy
lib/legacy
203:219 
362:378 
view
14 x 3 lib/legacy
lib/legacy
lib/legacy
1692:1714 
1689:1711 
1841:1863 
view
14 x 3 lib/legacy
lib/legacy
lib/legacy
2022:2037 
2019:2034 
2169:2184 
view
13 x 2 contrib/seekable_format
programs
88:103 
86:101 
view
12 x 4 lib/legacy
lib/legacy
lib/legacy
lib/legacy
1463:1480 
2817:2834 
2458:2475 
2584:2601 
view
11 x 2 lib/legacy
lib/legacy
189:201 
348:360 
view
11 x 3 lib/legacy
lib/legacy
lib/legacy
207:219 
209:221 
179:191 
view
11 x 2 lib/legacy
lib/common
1272:1287 
188:203 
view
10 x 3 lib/legacy
lib/legacy
lib/legacy
594:608 
1294:1308 
1295:1309 
view
10 x 3 lib/legacy
lib/legacy
lib/legacy
1814:1827 
1811:1824 
1962:1975 
view
10 x 3 lib/legacy
lib/legacy
lib/legacy
2848:2863 
2489:2504 
2615:2630 
view
10 x 2 lib/legacy
lib/legacy
3245:3260 
2886:2901 
view
9 x 2 programs
lib/dictBuilder
233:244 
539:549 
view
9 x 3 lib/legacy
lib/legacy
lib/legacy
238:248 
239:249 
210:220 
view
9 x 3 lib/legacy
lib/legacy
lib/legacy
2176:2188 
2173:2185 
2320:2332 
view
8 x 4 lib/legacy
lib/legacy
lib/legacy
lib/common
211:220 
234:243 
393:402 
324:333 
view
8 x 3 lib/legacy
lib/legacy
lib/legacy
196:205 
198:207 
168:177 
view
8 x 3 lib/legacy
lib/legacy
lib/legacy
226:235 
228:237 
198:207 
view
7 x 4 lib/legacy
lib/legacy
lib/legacy
lib/common
201:209 
224:232 
383:391 
314:322 
view
7 x 3 lib/legacy
lib/legacy
lib/legacy
3375:3383 
3514:3522 
3729:3737 
view
7 x 3 lib/legacy
lib/legacy
lib/legacy
884:894 
1407:1417 
1408:1418 
view
7 x 3 lib/legacy
lib/legacy
lib/legacy
544:552 
2777:2785 
395:403 
view
7 x 3 lib/legacy
lib/legacy
lib/legacy
720:729 
722:731 
895:904 
view
7 x 3 lib/legacy
lib/legacy
lib/legacy
731:740 
733:742 
906:915 
view
6 x 2 lib/legacy
lib/legacy
3793:3800 
3411:3418 
view
6 x 4 lib/legacy
lib/legacy
lib/legacy
lib/legacy
1483:1490 
2836:2843 
2477:2484 
2603:2610 
view
6 x 3 lib/legacy
lib/legacy
lib/legacy
2063:2070 
3386:3393 
3028:3035 
view
6 x 3 lib/legacy
lib/legacy
lib/legacy
711:718 
713:720 
886:893 
view