microsoft / Mobius
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:
    • 20,649 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,478 duplicated lines
  • 165 duplicates
system7% (1,478 lines)
Duplication per Extension
cs6% (1,046 lines)
ps125% (249 lines)
cmd17% (113 lines)
cpp8% (32 lines)
scala<1% (24 lines)
h12% (14 lines)
Duplication per Component (primary)
csharp/AdapterTest10% (580 lines)
build/localmode23% (195 lines)
csharp/WorkerTest29% (186 lines)
csharp/Adapter2% (171 lines)
csharp53% (55 lines)
csharp/Tests.Common40% (52 lines)
dev/scripts18% (48 lines)
cpp/Riosock8% (46 lines)
cpp63% (46 lines)
csharp/Worker3% (25 lines)
scala/src1% (24 lines)
csharp/ReplTest19% (18 lines)
build7% (18 lines)
csharp/Perf5% (7 lines)
csharp/Repl3% (7 lines)
ROOT0% (0 lines)
csharp/Utils0% (0 lines)
notes0% (0 lines)
python/perf0% (0 lines)
scala/perf0% (0 lines)
scripts0% (0 lines)

Duplication Between Components (50+ lines)

G csharp/AdapterTest csharp/AdapterTest csharp/Tests.Common csharp/Tests.Common csharp/AdapterTest--csharp/Tests.Common 142 cpp cpp csharp csharp cpp--csharp 101 build/localmode build/localmode dev/scripts dev/scripts build/localmode--dev/scripts 100 build build build--build/localmode 69

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 165 duplicates...
Size#FoldersFilesLinesCode
37 x 2 csharp/AdapterTest
csharp/AdapterTest
DataFrameReaderTest.cs
DataFrameTest.cs
62:99 (18%)
1011:1048 (3%)
view
34 x 2 csharp/AdapterTest
csharp/Tests.Common
DataFrameTest.cs
RowHelper.cs
1013:1046 (2%)
35:68 (46%)
view
34 x 2 csharp/AdapterTest
csharp/Tests.Common
DataFrameReaderTest.cs
RowHelper.cs
64:97 (16%)
35:68 (46%)
view
22 x 2 csharp/WorkerTest
csharp/WorkerTest
MultiThreadWorkerTest.cs
WorkerTest.cs
143:181 (13%)
137:175 (4%)
view
18 x 2 build/localmode
build/localmode
downloadtools.ps1
downloadtools.ps1
246:264 (3%)
396:414 (3%)
view
18 x 2 build
build/localmode
copyjar.ps1
patchpom.ps1
6:24 (42%)
13:32 (42%)
view
18 x 2 csharp/AdapterTest
csharp/Tests.Common
DataFrameTest.cs
RowHelper.cs
536:553 (1%)
14:31 (24%)
view
17 x 2 build/localmode
build/localmode
downloadtools.ps1
patchpom.ps1
28:45 (3%)
13:31 (40%)
view
17 x 2 csharp/WorkerTest
csharp/WorkerTest
WorkerTest.cs
WorkerTest.cs
148:171 (3%)
692:715 (3%)
view
17 x 2 csharp/WorkerTest
csharp/WorkerTest
MultiThreadWorkerTest.cs
WorkerTest.cs
154:177 (10%)
692:715 (3%)
view
17 x 2 build
build/localmode
copyjar.ps1
downloadtools.ps1
6:23 (40%)
28:45 (3%)
view
16 x 2 csharp/AdapterTest
csharp/AdapterTest
DataFrameReaderTest.cs
DataFrameTest.cs
84:99 (7%)
538:553 (1%)
view
16 x 2 build/localmode
build/localmode
downloadtools.ps1
zipdir.ps1
28:43 (2%)
11:26 (19%)
view
16 x 2 csharp/AdapterTest
csharp/Tests.Common
DataFrameTest.cs
RowHelper.cs
1033:1048 (1%)
16:31 (21%)
view
16 x 2 build/localmode
dev/scripts
zipdir.ps1
SetSparkClrJarVersion.ps1
11:26 (19%)
14:29 (18%)
view
16 x 2 csharp/AdapterTest
csharp/Tests.Common
DataFrameReaderTest.cs
RowHelper.cs
84:99 (7%)
16:31 (21%)
view
16 x 2 csharp/AdapterTest
csharp/AdapterTest
DataFrameTest.cs
DataFrameTest.cs
538:553 (1%)
1033:1048 (1%)
view
16 x 2 build/localmode
dev/scripts
downloadtools.ps1
SetSparkClrJarVersion.ps1
28:43 (2%)
14:29 (18%)
view
16 x 2 build
build/localmode
copyjar.ps1
zipdir.ps1
6:21 (38%)
11:26 (19%)
view
16 x 2 build/localmode
dev/scripts
patchpom.ps1
SetSparkClrJarVersion.ps1
13:28 (38%)
14:29 (18%)
view
Duplicated Units
The list of top 11 duplicated units.
See data for all 11 unit duplicates...
Size#FoldersFilesLinesCode
32 x 2 csharp/WorkerTest
csharp/WorkerTest
MultiThreadWorkerTest.cs
WorkerTest.cs
152:184 
146:178 
view
11 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
DataFrameIpcProxy.cs
DataFrameIpcProxy.cs
203:214 
216:227 
view
9 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Interop/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Interop/Ipc
JvmBridgeUtils.cs
JvmBridgeUtils.cs
20:29 
31:40 
view
9 x 2 csharp/AdapterTest
csharp/ReplTest
SparkCLRTestEnvironment.cs
SparkCLRTestEnvironment.cs
16:25 
17:26 
view
8 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Network
csharp/Adapter/Microsoft.Spark.CSharp/Network
RioSocketWrapper.cs
SaeaSocketWrapper.cs
190:198 
135:144 
view
7 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
DataFrameIpcProxy.cs
DataFrameIpcProxy.cs
288:295 
302:309 
view
7 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
DataFrameIpcProxy.cs
DataFrameIpcProxy.cs
509:516 
531:538 
view
6 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Network
csharp/Adapter/Microsoft.Spark.CSharp/Network
RioSocketWrapper.cs
SaeaSocketWrapper.cs
441:447 
294:300 
view
6 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
DataFrameIpcProxy.cs
DataFrameIpcProxy.cs
146:154 
405:412 
view
6 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
SparkContextIpcProxy.cs
SparkContextIpcProxy.cs
185:191 
201:207 
view
6 x 2 csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
csharp/Adapter/Microsoft.Spark.CSharp/Proxy/Ipc
SparkContextIpcProxy.cs
SparkContextIpcProxy.cs
193:199 
209:215 
view