awslabs / amazon-timestream-tools
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
  • 47% duplication:
    • 17,428 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 8,243 duplicated lines
  • 1,042 duplicates
system47% (8,243 lines)
Duplication per Extension
java60% (3,415 lines)
go44% (1,760 lines)
cs50% (1,180 lines)
js49% (1,023 lines)
py25% (865 lines)
Duplication per Component (primary)
sample_apps_reinvent2021/java65% (876 lines)
sample_apps_reinvent2021/javaV262% (832 lines)
sample_apps_reinvent2021/go48% (774 lines)
sample_apps_reinvent2021/goV238% (670 lines)
sample_apps_reinvent2021/dotnet39% (642 lines)
sample_apps/java79% (568 lines)
sample_apps/dotnet75% (538 lines)
sample_apps_reinvent2021/js39% (523 lines)
sample_apps/javaV276% (513 lines)
sample_apps/js65% (500 lines)
tools/perf-scale-workload26% (324 lines)
sample_apps/go53% (316 lines)
integrations/flink_connector89% (224 lines)
integrations/flink_connector_with_upserts74% (224 lines)
integrations/jdbc44% (163 lines)
sample_apps_reinvent2021/python20% (152 lines)
integrations/sagemaker83% (130 lines)
tools/continuous-ingestor23% (102 lines)
tools/kinesis_ingestor32% (82 lines)
sample_apps/python17% (75 lines)
tools/multithreaded-writer2% (15 lines)
integrations/iot_core0% (0 lines)
integrations/telegraf0% (0 lines)

Duplication Between Components (50+ lines)

G sample_apps_reinvent2021/java sample_apps_reinvent2021/java sample_apps_reinvent2021/javaV2 sample_apps_reinvent2021/javaV2 sample_apps_reinvent2021/java--sample_apps_reinvent2021/javaV2 1244 sample_apps_reinvent2021/js sample_apps_reinvent2021/js sample_apps_reinvent2021/java--sample_apps_reinvent2021/js 210 sample_apps_reinvent2021/javaV2--sample_apps_reinvent2021/js 210 sample_apps_reinvent2021/go sample_apps_reinvent2021/go sample_apps_reinvent2021/go--sample_apps_reinvent2021/java 50 sample_apps_reinvent2021/go--sample_apps_reinvent2021/javaV2 62 sample_apps_reinvent2021/goV2 sample_apps_reinvent2021/goV2 sample_apps_reinvent2021/go--sample_apps_reinvent2021/goV2 1168 sample_apps_reinvent2021/goV2--sample_apps_reinvent2021/java 50 sample_apps_reinvent2021/goV2--sample_apps_reinvent2021/javaV2 62 sample_apps/dotnet sample_apps/dotnet sample_apps_reinvent2021/dotnet sample_apps_reinvent2021/dotnet sample_apps/dotnet--sample_apps_reinvent2021/dotnet 966 sample_apps/js sample_apps/js sample_apps/js--sample_apps_reinvent2021/java 192 sample_apps/js--sample_apps_reinvent2021/javaV2 192 sample_apps/js--sample_apps_reinvent2021/js 769 sample_apps/java sample_apps/java sample_apps/java--sample_apps_reinvent2021/java 742 sample_apps/java--sample_apps_reinvent2021/javaV2 354 sample_apps/java--sample_apps/js 246 sample_apps/java--sample_apps_reinvent2021/js 142 sample_apps/javaV2 sample_apps/javaV2 sample_apps/java--sample_apps/javaV2 630 sample_apps/javaV2--sample_apps_reinvent2021/java 346 sample_apps/javaV2--sample_apps_reinvent2021/javaV2 648 sample_apps/javaV2--sample_apps/js 246 sample_apps/javaV2--sample_apps_reinvent2021/js 142 integrations/flink_connector integrations/flink_connector integrations/flink_connector_with_upserts integrations/flink_connector_with_upserts integrations/flink_connector--integrations/flink_connector_with_upserts 448 sample_apps/go sample_apps/go sample_apps/go--sample_apps_reinvent2021/go 355 sample_apps/go--sample_apps_reinvent2021/goV2 139 integrations/sagemaker integrations/sagemaker tools/perf-scale-workload tools/perf-scale-workload integrations/sagemaker--tools/perf-scale-workload 260 tools/continuous-ingestor tools/continuous-ingestor tools/continuous-ingestor--tools/perf-scale-workload 204 tools/kinesis_ingestor tools/kinesis_ingestor tools/continuous-ingestor--tools/kinesis_ingestor 164 integrations/jdbc integrations/jdbc integrations/jdbc--sample_apps_reinvent2021/java 166 integrations/jdbc--sample_apps_reinvent2021/javaV2 166 integrations/jdbc--sample_apps/js 188 integrations/jdbc--sample_apps_reinvent2021/js 122 integrations/jdbc--sample_apps/java 204 integrations/jdbc--sample_apps/javaV2 204 tools/kinesis_ingestor--tools/perf-scale-workload 164 sample_apps/python sample_apps/python sample_apps_reinvent2021/python sample_apps_reinvent2021/python sample_apps/python--sample_apps_reinvent2021/python 52

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 1,042 duplicates...
Size#FoldersFilesLinesCode
201 x 2 sample_apps/java/src/mai...aws/services/timestream
sample_apps/javaV2/src/m...aws/services/timestream
QueryExample.java
QueryExample.java
39:265 (63%)
31:257 (71%)
view
201 x 2 sample_apps_reinvent2021...aws/services/timestream
sample_apps_reinvent2021...aws/services/timestream
QueryExample.java
QueryExample.java
36:262 (64%)
22:248 (73%)
view
88 x 2 sample_apps/java/src/mai...aws/services/timestream
sample_apps_reinvent2021...aws/services/timestream
QueryExample.java
QueryExample.java
299:421 (27%)
286:408 (28%)
view
84 x 2 tools/continuous-ingestor
tools/perf-scale-workload
timestream_sample_continuous_data_ing...
model.py
38:136 (19%)
45:147 (32%)
view
82 x 2 tools/continuous-ingestor
tools/kinesis_ingestor
timestream_sample_continuous_data_ing...
timestream_kinesis_data_gen.py
38:133 (19%)
20:115 (33%)
view
82 x 2 tools/kinesis_ingestor
tools/perf-scale-workload
timestream_kinesis_data_gen.py
model.py
20:115 (33%)
45:144 (31%)
view
74 x 2 sample_apps/js
sample_apps_reinvent2021/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
117:214 (19%)
129:226 (36%)
view
72 x 2 sample_apps/js
sample_apps_reinvent2021/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
7:105 (18%)
9:107 (35%)
view
65 x 2 integrations/sagemaker
tools/perf-scale-workload
timestreamquery.py
timestreamquery.py
30:105 (41%)
38:119 (40%)
view
63 x 2 sample_apps/go
sample_apps_reinvent2021/go/utils
query-common.go
query-common.go
36:118 (57%)
33:115 (60%)
view
55 x 2 sample_apps/dotnet
sample_apps_reinvent2021/dotnet
QueryExample.cs
QueryExample.cs
288:387 (18%)
286:385 (18%)
view
50 x 2 sample_apps/dotnet
sample_apps_reinvent2021/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
178:268 (15%)
119:209 (14%)
view
50 x 2 sample_apps_reinvent2021/go/utils
sample_apps_reinvent2021/goV2/utils
timestream-dependency-helper.go
timestream-dependency-helper.go
26:78 (11%)
30:82 (10%)
view
48 x 2 sample_apps/js
sample_apps_reinvent2021/js
query-example.js
query-example.js
289:367 (16%)
295:373 (16%)
view
45 x 2 sample_apps/dotnet
sample_apps_reinvent2021/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
43:126 (13%)
26:109 (13%)
view
45 x 2 integrations/flink_conne...aws/services/timestream
integrations/flink_conne...aws/services/timestream
TimestreamSink.java
TimestreamSink.java
87:155 (51%)
92:160 (50%)
view
44 x 2 sample_apps/javaV2/src/m...aws/services/timestream
sample_apps_reinvent2021...aws/services/timestream
QueryExample.java
QueryExample.java
307:379 (15%)
288:360 (16%)
view
44 x 2 integrations/flink_conne...aws/services/timestream
integrations/flink_conne...aws/services/timestream
TimestreamPoint.java
TimestreamPoint.java
8:96 (100%)
8:96 (100%)
view
44 x 2 sample_apps_reinvent2021...aws/services/timestream
sample_apps_reinvent2021...aws/services/timestream
TimestreamDependencyHelper.java
TimestreamDependencyHelper.java
86:132 (12%)
85:130 (12%)
view
38 x 2 sample_apps_reinvent2021/go
sample_apps_reinvent2021/goV2
scheduled-query-sample.go
scheduled-query-sample.go
95:154 (21%)
99:157 (21%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 79 unit duplicates...
Size#FoldersFilesLinesCode
30 x 2 sample_apps_reinvent2021/go/utils
sample_apps/go
query-common.go
query-common.go
80:116 
83:119 
view
30 x 2 sample_apps_reinvent2021...aws/services/timestream
sample_apps/java/src/mai...aws/services/timestream
QueryExample.java
QueryExample.java
345:375 
358:388 
view
26 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
QueryExample.cs
QueryExample.cs
308:335 
310:337 
view
26 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
179:207 
238:266 
view
25 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
144:171 
203:230 
view
24 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
50:76 
67:93 
view
23 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
50:76 
48:74 
view
23 x 2 sample_apps_reinvent2021/go/utils
sample_apps/go
query-common.go
query-common.go
54:78 
57:81 
view
22 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
QueryExample.cs
QueryExample.cs
252:274 
252:274 
view
21 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
204:227 
192:215 
view
21 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
78:101 
95:118 
view
21 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
119:142 
178:201 
view
20 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
86:108 
84:106 
view
20 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
148:170 
136:158 
view
20 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
172:194 
160:182 
view
20 x 2 sample_apps_reinvent2021/js
sample_apps/js
query-example.js
query-example.js
320:346 
314:340 
view
20 x 2 sample_apps_reinvent2021...aws/services/timestream
sample_apps/java/src/mai...aws/services/timestream
QueryExample.java
QueryExample.java
310:334 
323:347 
view
20 x 2 sample_apps_reinvent2021...aws/services/timestream
sample_apps/javaV2/src/m...aws/services/timestream
QueryExample.java
QueryExample.java
312:336 
331:355 
view
20 x 2 sample_apps_reinvent2021/dotnet
sample_apps/dotnet
CrudAndSimpleIngestionExample.cs
CrudAndSimpleIngestionExample.cs
26:48 
43:65 
view
19 x 2 sample_apps_reinvent2021/js
sample_apps/js
crud-and-simple-ingestion-example.js
crud-and-simple-ingestion-example.js
27:48 
25:46 
view