facebookincubator / velox
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
  • 8% duplication:
    • 116,371 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 10,394 duplicated lines
  • 2,475 duplicates
system8% (10,394 lines)
Duplication per Extension
cpp10% (6,448 lines)
h7% (3,284 lines)
py4% (302 lines)
cmake11% (268 lines)
proto6% (92 lines)
Duplication per Component (primary)
velox/dwio13% (3,443 lines)
velox/functions15% (3,168 lines)
velox/vector9% (631 lines)
velox/exec4% (605 lines)
build/fbcode_builder5% (513 lines)
velox/expression6% (409 lines)
velox/experimental5% (349 lines)
velox/common3% (325 lines)
velox/type3% (292 lines)
velox/core8% (229 lines)
velox/serializers7% (94 lines)
velox/substrait4% (88 lines)
velox/row3% (78 lines)
velox/benchmarks14% (72 lines)
CMake9% (29 lines)
scripts3% (28 lines)
velox/connectors1% (27 lines)
velox/duckdb1% (14 lines)
velox/flag_definitions0% (0 lines)
velox/parse0% (0 lines)
velox/codegen0% (0 lines)
velox/buffer0% (0 lines)

Duplication Between Components (50+ lines)

G velox/expression velox/expression velox/functions velox/functions velox/expression--velox/functions 98 CMake CMake build/fbcode_builder build/fbcode_builder CMake--build/fbcode_builder 58

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 2,475 duplicates...
Size#FoldersFilesLinesCode
57 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
342:408 (20%)
205:271 (29%)
view
42 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
93:149 (14%)
40:96 (21%)
view
40 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
817:863 (4%)
1331:1377 (4%)
view
36 x 2 velox/functions/prestosql/aggregates
velox/functions/prestosql/aggregates
92:133 (14%)
185:226 (9%)
view
34 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
166:203 (21%)
143:180 (22%)
view
31 x 2 velox/functions/lib
velox/functions/lib
642:678 (4%)
798:833 (4%)
view
29 x 2 CMake
build/fbcode_builder/CMake
1:37 (100%)
1:37 (100%)
view
28 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
269:305 (9%)
133:169 (14%)
view
26 x 2 velox/expression/benchmarks
velox/functions/prestosql/benchmarks
49:85 (25%)
63:99 (14%)
view
23 x 2 velox/type
velox/type
311:349 (2%)
430:468 (2%)
view
22 x 2 velox/expression/benchmarks
velox/expression/benchmarks
51:81 (21%)
111:141 (21%)
view
22 x 2 velox/expression/benchmarks
velox/functions/prestosql/benchmarks
111:141 (21%)
65:95 (12%)
view
20 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
377:402 (1%)
761:786 (1%)
view
19 x 2 velox/experimental/codegen/vector_function
velox/experimental/codegen/vector_function
131:160 (6%)
249:278 (6%)
view
19 x 2 velox/dwio/dwrf/writer
velox/dwio/dwrf/writer
283:319 (1%)
870:906 (1%)
view
19 x 2 velox/dwio/dwrf/common
velox/dwio/dwrf/common
156:179 (10%)
279:303 (5%)
view
19 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
36:57 (59%)
33:54 (63%)
view
18 x 2 velox/dwio/dwrf/common
velox/dwio/dwrf/common
83:109 (11%)
89:111 (14%)
view
18 x 2 velox/dwio/dwrf/writer
velox/dwio/dwrf/writer
224:255 (1%)
804:835 (1%)
view
18 x 2 velox/functions/prestosql/aggregates
velox/functions/prestosql/aggregates
120:142 (4%)
195:217 (4%)
view
18 x 2 velox/dwio/dwrf/writer
velox/dwio/dwrf/writer
1687:1707 (1%)
1810:1830 (1%)
view
18 x 2 velox/vector
velox/vector
492:519 (2%)
804:831 (2%)
view
18 x 2 velox/vector
velox/vector
335:360 (5%)
514:539 (5%)
view
18 x 2 velox/core
velox/core
969:987 (2%)
1000:1018 (2%)
view
17 x 2 velox/dwio/parquet/reader
velox/dwio/parquet/reader
85:103 (8%)
123:141 (8%)
view
17 x 2 velox/substrait/proto/substrait
velox/substrait/proto/substrait
12:28 (18%)
12:28 (13%)
view
16 x 2 velox/experimental/codegen
velox/experimental/codegen
42:62 (20%)
63:83 (10%)
view
16 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
1766:1786 (1%)
1928:1948 (1%)
view
16 x 2 velox/functions/prestosql/aggregates
velox/functions/prestosql/aggregates
142:161 (10%)
123:142 (3%)
view
16 x 2 velox/functions/prestosql/aggregates
velox/functions/prestosql/aggregates
142:161 (10%)
198:217 (3%)
view
16 x 2 velox/functions/lib
velox/functions/lib
642:659 (2%)
726:743 (2%)
view
16 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
176:199 (6%)
232:255 (6%)
view
16 x 2 velox/functions/lib
velox/functions/lib
726:743 (2%)
798:815 (2%)
view
16 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
520:540 (2%)
732:752 (2%)
view
16 x 2 velox/vector
velox/vector
156:171 (6%)
176:191 (6%)
view
16 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
97:115 (18%)
36:54 (53%)
view
16 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
39:57 (50%)
97:115 (18%)
view
15 x 2 velox/dwio/dwrf/proto
velox/experimental/codegen/proto
1:15 (5%)
1:15 (37%)
view
15 x 2 velox/dwio/dwrf/writer
velox/dwio/dwrf/writer
510:530 (1%)
1417:1438 (1%)
view
15 x 2 velox/vector
velox/vector
334:351 (2%)
563:580 (2%)
view
15 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
22:40 (5%)
20:38 (7%)
view
15 x 2 velox/dwio/dwrf/common
velox/dwio/dwrf/common
85:106 (17%)
129:149 (17%)
view
15 x 2 velox/functions/lib/string
velox/functions/lib/string
116:134 (7%)
155:174 (7%)
view
15 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
171:185 (8%)
40:54 (15%)
view
15 x 2 velox/dwio/dwrf/common
velox/dwio/dwrf/common
126:141 (9%)
348:363 (4%)
view
14 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
383:402 (<1%)
523:542 (<1%)
view
14 x 2 velox/functions/prestosql
velox/functions/prestosql
98:118 (8%)
160:181 (8%)
view
14 x 2 velox/dwio/dwrf/common
velox/dwio/dwrf/common
1002:1019 (<1%)
1626:1643 (<1%)
view
14 x 2 velox/dwio/dwrf/writer
velox/dwio/dwrf/writer
1773:1794 (1%)
1895:1916 (1%)
view
14 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
1675:1691 (<1%)
1833:1849 (<1%)
view
Duplicated Units
The list of top 18 duplicated units.
See data for all 18 unit duplicates...
Size#FoldersFilesLinesCode
40 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
343:388 
206:251 
view
35 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
165:201 
142:178 
view
30 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
372:403 
167:198 
view
28 x 2 velox/functions/prestosql/aggregates
velox/functions/prestosql/aggregates
185:214 
92:121 
view
28 x 2 velox/functions/prestosql
velox/functions/prestosql/benchmarks
117:150 
64:97 
view
26 x 2 velox/functions/prestosql/benchmarks
velox/expression/benchmarks
68:96 
54:82 
view
14 x 2 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
974:995 
97:118 
view
13 x 2 velox/experimental/codegen
velox/experimental/codegen
45:60 
66:81 
view
11 x 2 velox/exec
velox/vector
599:611 
371:383 
view
10 x 2 velox/experimental/codegen/vector_function
velox/functions
406:420 
45:59 
view
8 x 2 velox/benchmarks/basic
velox/benchmarks/basic
136:146 
98:108 
view
7 x 3 velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
velox/dwio/dwrf/reader
123:131 
361:369 
147:155 
view
7 x 2 velox/benchmarks/basic
velox/benchmarks/basic
53:62 
78:87 
view
7 x 2 velox/functions/prestosql
velox/functions/prestosql
124:133 
137:146 
view
7 x 2 velox/expression
velox/expression
156:165 
497:506 
view
6 x 2 velox/core
velox/dwio/dwrf/writer
195:202 
430:437 
view
6 x 2 velox/exec
velox/exec
51:58 
141:148 
view
6 x 2 velox/functions/prestosql
velox/functions/prestosql
146:154 
159:167 
view