facebookincubator / spectrum
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
  • 3% duplication:
    • 23,813 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 801 duplicated lines
  • 98 duplicates
system3% (801 lines)
Duplication per Extension
cpp3% (258 lines)
h2% (214 lines)
java6% (145 lines)
xml31% (140 lines)
mm1% (32 lines)
swift<1% (12 lines)
Duplication per Component (primary)
cpp/spectrum3% (261 lines)
android/sample12% (140 lines)
android/src3% (126 lines)
androidLibs/fbjni2% (94 lines)
cpp/testutils7% (54 lines)
ios/SpectrumKit1% (44 lines)
android/spectrumpluginplatform5% (14 lines)
android/spectrumpluginavif22% (14 lines)
android/spectrumpluginpng22% (14 lines)
android/spectrumpluginwebp21% (14 lines)
android/spectrumpluginjpeg22% (14 lines)
android/spectrumtestutils2% (12 lines)
website/core0% (0 lines)
website0% (0 lines)
website/static0% (0 lines)
website/pages0% (0 lines)
ios/SpectrumKitSample0% (0 lines)
android0% (0 lines)
android/spectrumdefault0% (0 lines)
Longest Duplicates
The list of 50 longest duplicates.
See data for all 98 duplicates...
Size#FoldersFilesLinesCode
19 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
223:245 (7%)
251:273 (7%)
view
15 x 2 android/src/main/java/co...k/spectrum/requirements
android/src/main/java/co...k/spectrum/requirements
124:140 (10%)
191:207 (10%)
view
13 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
65:78 (4%)
121:134 (4%)
view
13 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
89:105 (4%)
227:243 (4%)
view
13 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
89:105 (4%)
255:271 (4%)
view
12 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
94:106 (4%)
150:162 (4%)
view
12 x 2 cpp/spectrum/requirements
cpp/spectrum/requirements
48:60 (13%)
55:67 (13%)
view
12 x 2 cpp/spectrum
cpp/spectrum
59:70 (16%)
73:84 (16%)
view
11 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
150:161 (4%)
260:271 (4%)
view
11 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
206:217 (4%)
262:273 (4%)
view
11 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
206:217 (4%)
234:245 (4%)
view
11 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
150:161 (4%)
232:243 (4%)
view
10 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
96:106 (3%)
124:134 (3%)
view
10 x 2 cpp/spectrum
cpp/spectrum
47:56 (14%)
87:96 (14%)
view
10 x 2 android/src/main/java/co...cebook/spectrum/options
android/src/main/java/co...cebook/spectrum/options
41:58 (43%)
41:58 (43%)
view
10 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
68:78 (3%)
152:162 (3%)
view
10 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
124:134 (3%)
152:162 (3%)
view
10 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
68:78 (3%)
96:106 (3%)
view
10 x 2 cpp/spectrum/requirements
cpp/spectrum/requirements
77:87 (32%)
70:80 (33%)
view
10 x 2 ios/SpectrumKit/SpectrumKit
ios/SpectrumKit/SpectrumKit
141:152 (9%)
181:192 (9%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
124:133 (3%)
234:243 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
68:77 (3%)
234:243 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
152:161 (3%)
206:215 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
124:133 (3%)
206:215 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
68:77 (3%)
262:271 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
96:105 (3%)
206:215 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
3:13 (60%)
4:14 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
68:77 (3%)
206:215 (3%)
view
9 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
124:133 (3%)
262:271 (3%)
view
9 x 2 cpp/spectrum/core/decisions
cpp/spectrum/core/decisions
8:17 (52%)
14:23 (90%)
view
8 x 2 androidLibs/fbjni/cxx/fbjni/detail
androidLibs/fbjni/cxx/fbjni/detail
481:488 (1%)
508:515 (1%)
view
8 x 2 androidLibs/fbjni/cxx/fbjni/detail
androidLibs/fbjni/cxx/fbjni/detail
481:488 (1%)
534:541 (1%)
view
8 x 2 android/src/main/java/co...k/spectrum/requirements
android/src/main/java/co...k/spectrum/requirements
112:122 (5%)
179:189 (5%)
view
8 x 2 android/src/main/java/co...cebook/spectrum/options
android/src/main/java/co...cebook/spectrum/options
50:66 (34%)
50:66 (33%)
view
8 x 2 cpp/spectrum/core/decisions
cpp/spectrum/core/decisions
8:16 (44%)
12:20 (88%)
view
8 x 2 androidLibs/fbjni/cxx/fbjni/detail
androidLibs/fbjni/cxx/fbjni/detail
508:515 (1%)
534:541 (1%)
view
8 x 2 android/src/main/cpp/spectrumjni/io
android/src/main/cpp/spectrumjni/io
80:87 (10%)
116:123 (10%)
view
8 x 2 android/src/main/java/co...k/spectrum/requirements
android/src/main/java/co...k/spectrum/requirements
37:48 (13%)
100:111 (19%)
view
7 x 2 cpp/spectrum
cpp/spectrum
105:111 (12%)
120:126 (12%)
view
7 x 2 android/spectrumpluginpl...cpp/spectrumjni/plugins
android/spectrumpluginpn...cpp/spectrumjni/plugins
20:29 (46%)
20:29 (46%)
view
7 x 2 android/spectrumpluginpl...cpp/spectrumjni/plugins
android/spectrumpluginwe...cpp/spectrumjni/plugins
20:29 (46%)
20:29 (46%)
view
7 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
45:51 (2%)
259:265 (2%)
view
7 x 2 cpp/spectrum/core/proc
cpp/spectrum/core/proc
393:399 (1%)
428:434 (1%)
view
7 x 2 android/spectrumpluginav...cpp/spectrumjni/plugins
android/spectrumpluginpn...cpp/spectrumjni/plugins
20:29 (46%)
20:29 (46%)
view
7 x 2 android/spectrumpluginjp...cebook/spectrum/plugins
android/spectrumpluginpl...cebook/spectrum/plugins
19:28 (31%)
26:35 (31%)
view
7 x 2 android/spectrumpluginjp...cebook/spectrum/plugins
android/spectrumpluginwe...cebook/spectrum/plugins
19:28 (31%)
19:28 (31%)
view
7 x 2 android/sample/src/main/res/layout
android/sample/src/main/res/layout
45:51 (2%)
231:237 (2%)
view
7 x 2 cpp/testutils/src/comparison
cpp/testutils/src/comparison
11:18 (15%)
12:21 (38%)
view
7 x 2 android/spectrumpluginav...cpp/spectrumjni/plugins
android/spectrumpluginpl...cpp/spectrumjni/plugins
20:29 (46%)
20:29 (46%)
view
7 x 2 android/spectrumpluginav...cebook/spectrum/plugins
android/spectrumpluginpn...cebook/spectrum/plugins
19:28 (31%)
19:28 (31%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
6 x 2 cpp/spectrum/requirements
cpp/spectrum/requirements
45:52 
33:40 
view
6 x 2 android/src/main/java/co...k/spectrum/requirements
android/src/main/java/co...k/spectrum/requirements
45:52 
108:115 
view