microsoft / libHttpClient
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:
    • 33,120 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 15,839 duplicated lines
  • 1,671 duplicates
system47% (15,839 lines)
Duplication per Extension
filters99% (7,770 lines)
vcxproj99% (6,361 lines)
cpp8% (671 lines)
hpp10% (534 lines)
h7% (292 lines)
yml31% (112 lines)
props28% (87 lines)
cs3% (12 lines)
Duplication per Component (primary)
Build/libcrypto.141.Win3299% (2,008 lines)
Build/libcrypto.142.Win3299% (2,008 lines)
Build/libcrypto.143.Win3299% (2,007 lines)
Build/libcrypto.140.Win3299% (1,911 lines)
Include/json_cpp11% (638 lines)
Utilities/CMake48% (591 lines)
Build/libHttpClient.142.UnitTest.TE98% (392 lines)
Build/libHttpClient.140.UWP.C99% (342 lines)
Build/libHttpClient.142.UWP.C99% (342 lines)
Build/libHttpClient.141.UWP.C99% (342 lines)
Build/libHttpClient.142.UnitTest.TAEF95% (331 lines)
Build/libHttpClient.142.XDK.C99% (326 lines)
Build/libHttpClient.141.XDK.C99% (326 lines)
Build/libHttpClient.140.XDK.C99% (326 lines)
Build/libHttpClient.143.Win32.C99% (323 lines)
Build/libHttpClient.142.Win32.C99% (323 lines)
Build/libHttpClient.141.Win32.C99% (323 lines)
Build/libHttpClient.140.Win32.C99% (323 lines)
Build/libHttpClient.143.GDK.C99% (296 lines)
Build/libHttpClient.142.GDK.C99% (296 lines)
Build/libHttpClient.141.GDK.C98% (294 lines)
Source/HTTP6% (262 lines)
Build/libssl.142.Win3299% (220 lines)
Build/libssl.143.Win3299% (219 lines)
Source/Task7% (219 lines)
Source/WebSocket10% (212 lines)
Build/libssl.141.Win3299% (206 lines)
Build/libssl.140.Win3279% (122 lines)
Utilities/Pipelines31% (112 lines)
Source/Global10% (69 lines)
Include/httpClient5% (38 lines)
Build17% (26 lines)
Include16% (25 lines)
Source/Common2% (22 lines)
Source/Logger4% (12 lines)
ROOT6% (7 lines)
Build/libHttpClient.Android0% (0 lines)
External/opensslGeneratedHeaders0% (0 lines)
Source/Mock0% (0 lines)
Source/SSL0% (0 lines)
Utilities/XcodeBuildScripts0% (0 lines)

Duplication Between Components (50+ lines)

G Build/libcrypto.141.Win32 Build/libcrypto.141.Win32 Build/libcrypto.142.Win32 Build/libcrypto.142.Win32 Build/libcrypto.141.Win32--Build/libcrypto.142.Win32 4010 Build/libcrypto.143.Win32 Build/libcrypto.143.Win32 Build/libcrypto.141.Win32--Build/libcrypto.143.Win32 4004 Build/libcrypto.142.Win32--Build/libcrypto.143.Win32 4004 Build/libcrypto.140.Win32 Build/libcrypto.140.Win32 Build/libcrypto.140.Win32--Build/libcrypto.141.Win32 3789 Build/libcrypto.140.Win32--Build/libcrypto.142.Win32 3789 Build/libcrypto.140.Win32--Build/libcrypto.143.Win32 3787 Build/libHttpClient.140.UWP.C Build/libHttpClient.140.UWP.C Build/libHttpClient.142.UWP.C Build/libHttpClient.142.UWP.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.142.UWP.C 680 Build/libHttpClient.141.UWP.C Build/libHttpClient.141.UWP.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.141.UWP.C 680 Build/libHttpClient.140.Win32.C Build/libHttpClient.140.Win32.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.140.Win32.C 554 Build/libHttpClient.141.Win32.C Build/libHttpClient.141.Win32.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.141.Win32.C 550 Build/libHttpClient.142.Win32.C Build/libHttpClient.142.Win32.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.142.Win32.C 550 Build/libHttpClient.143.Win32.C Build/libHttpClient.143.Win32.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.143.Win32.C 550 Build/libHttpClient.142.XDK.C Build/libHttpClient.142.XDK.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.142.XDK.C 498 Build/libHttpClient.140.XDK.C Build/libHttpClient.140.XDK.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.140.XDK.C 498 Build/libHttpClient.141.XDK.C Build/libHttpClient.141.XDK.C Build/libHttpClient.140.UWP.C--Build/libHttpClient.141.XDK.C 498 Build/libHttpClient.142.UWP.C--Build/libHttpClient.142.Win32.C 554 Build/libHttpClient.142.UWP.C--Build/libHttpClient.143.Win32.C 554 Build/libHttpClient.142.UWP.C--Build/libHttpClient.142.XDK.C 498 Build/libHttpClient.141.UWP.C--Build/libHttpClient.142.UWP.C 680 Build/libHttpClient.141.UWP.C--Build/libHttpClient.141.Win32.C 554 Build/libHttpClient.141.UWP.C--Build/libHttpClient.142.Win32.C 550 Build/libHttpClient.141.UWP.C--Build/libHttpClient.143.Win32.C 550 Build/libHttpClient.141.UWP.C--Build/libHttpClient.142.XDK.C 498 Build/libHttpClient.141.UWP.C--Build/libHttpClient.141.XDK.C 498 Build/libHttpClient.140.XDK.C--Build/libHttpClient.141.XDK.C 652 Build/libHttpClient.140.XDK.C--Build/libHttpClient.142.XDK.C 652 Build/libHttpClient.140.XDK.C--Build/libHttpClient.141.UWP.C 498 Build/libHttpClient.140.XDK.C--Build/libHttpClient.142.UWP.C 498 Build/libHttpClient.140.XDK.C--Build/libHttpClient.141.Win32.C 426 Build/libHttpClient.140.XDK.C--Build/libHttpClient.142.Win32.C 426 Build/libHttpClient.141.XDK.C--Build/libHttpClient.142.XDK.C 652 Build/libHttpClient.141.XDK.C--Build/libHttpClient.142.UWP.C 498 Build/libHttpClient.142.XDK.C--Build/libHttpClient.143.Win32.C 426 Build/libHttpClient.142.Win32.C--Build/libHttpClient.143.Win32.C 646 Build/libHttpClient.140.Win32.C--Build/libHttpClient.142.Win32.C 642 Build/libHttpClient.140.Win32.C--Build/libHttpClient.141.Win32.C 642 Build/libHttpClient.140.Win32.C--Build/libHttpClient.143.Win32.C 642 Build/libHttpClient.140.Win32.C--Build/libHttpClient.142.UWP.C 550 Build/libHttpClient.140.Win32.C--Build/libHttpClient.141.UWP.C 550 Build/libHttpClient.140.Win32.C--Build/libHttpClient.142.XDK.C 426 Build/libHttpClient.140.Win32.C--Build/libHttpClient.140.XDK.C 426 Build/libHttpClient.141.Win32.C--Build/libHttpClient.142.Win32.C 642 Build/libHttpClient.141.Win32.C--Build/libHttpClient.143.Win32.C 642 Build/libHttpClient.141.Win32.C--Build/libHttpClient.142.UWP.C 550 Build/libHttpClient.141.Win32.C--Build/libHttpClient.142.XDK.C 426 Build/libHttpClient.142.GDK.C Build/libHttpClient.142.GDK.C Build/libHttpClient.143.GDK.C Build/libHttpClient.143.GDK.C Build/libHttpClient.142.GDK.C--Build/libHttpClient.143.GDK.C 592 Build/libHttpClient.141.GDK.C Build/libHttpClient.141.GDK.C Build/libHttpClient.141.GDK.C--Build/libHttpClient.143.GDK.C 588 Build/libHttpClient.141.GDK.C--Build/libHttpClient.142.GDK.C 588 Build/libHttpClient.142.UnitTest.TAEF Build/libHttpClient.142.UnitTest.TAEF Build/libHttpClient.142.UnitTest.TE Build/libHttpClient.142.UnitTest.TE Build/libHttpClient.142.UnitTest.TAEF--Build/libHttpClient.142.UnitTest.TE 520 Build/libssl.142.Win32 Build/libssl.142.Win32 Build/libssl.143.Win32 Build/libssl.143.Win32 Build/libssl.142.Win32--Build/libssl.143.Win32 428

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,671 duplicates...
Size#FoldersFilesLinesCode
1285 x 2 Build/libcrypto.142.Win32
Build/libcrypto.143.Win32
filters
libcrypto.142.Win32.vcxproj.filters
libcrypto.143.Win32.vcxproj.filters
1:1925 (100%)
1:1925 (100%)
view
1285 x 2 Build/libcrypto.141.Win32
Build/libcrypto.142.Win32
filters
libcrypto.141.Win32.vcxproj.filters
libcrypto.142.Win32.vcxproj.filters
1:1925 (100%)
1:1925 (100%)
view
1285 x 2 Build/libcrypto.141.Win32
Build/libcrypto.143.Win32
filters
libcrypto.141.Win32.vcxproj.filters
libcrypto.143.Win32.vcxproj.filters
1:1925 (100%)
1:1925 (100%)
view
696 x 2 Build/libcrypto.142.Win32
Build/libcrypto.143.Win32
vcxproj
libcrypto.142.Win32.vcxproj
libcrypto.143.Win32.vcxproj
36:740 (96%)
35:739 (96%)
view
696 x 2 Build/libcrypto.141.Win32
Build/libcrypto.142.Win32
vcxproj
libcrypto.141.Win32.vcxproj
libcrypto.142.Win32.vcxproj
36:740 (96%)
36:740 (96%)
view
696 x 2 Build/libcrypto.141.Win32
Build/libcrypto.143.Win32
vcxproj
libcrypto.141.Win32.vcxproj
libcrypto.143.Win32.vcxproj
36:740 (96%)
35:739 (96%)
view
658 x 2 Build/libcrypto.140.Win32
Build/libcrypto.141.Win32
vcxproj
libcrypto.140.Win32.vcxproj
libcrypto.141.Win32.vcxproj
68:729 (92%)
79:740 (90%)
view
658 x 2 Build/libcrypto.140.Win32
Build/libcrypto.143.Win32
vcxproj
libcrypto.140.Win32.vcxproj
libcrypto.143.Win32.vcxproj
68:729 (92%)
78:739 (91%)
view
658 x 2 Build/libcrypto.140.Win32
Build/libcrypto.142.Win32
vcxproj
libcrypto.140.Win32.vcxproj
libcrypto.142.Win32.vcxproj
68:729 (92%)
79:740 (90%)
view
429 x 2 Build/libcrypto.140.Win32
Build/libcrypto.141.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.141.Win32.vcxproj.filters
1:641 (35%)
1:641 (33%)
view
429 x 2 Build/libcrypto.140.Win32
Build/libcrypto.143.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.143.Win32.vcxproj.filters
1:641 (35%)
1:641 (33%)
view
429 x 2 Build/libcrypto.140.Win32
Build/libcrypto.142.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.142.Win32.vcxproj.filters
1:641 (35%)
1:641 (33%)
view
237 x 2 Build/libcrypto.140.Win32
Build/libcrypto.143.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.143.Win32.vcxproj.filters
1460:1814 (19%)
1427:1781 (18%)
view
237 x 2 Build/libcrypto.140.Win32
Build/libcrypto.141.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.141.Win32.vcxproj.filters
1460:1814 (19%)
1427:1781 (18%)
view
237 x 2 Build/libcrypto.140.Win32
Build/libcrypto.142.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.142.Win32.vcxproj.filters
1460:1814 (19%)
1427:1781 (18%)
view
175 x 2 Build/libHttpClient.140.XDK.C
Build/libHttpClient.141.XDK.C
filters
libHttpClient.140.XDK.C.vcxproj.filters
libHttpClient.141.XDK.C.vcxproj.filters
1:262 (100%)
1:262 (100%)
view
175 x 2 Build/libHttpClient.140.XDK.C
Build/libHttpClient.142.XDK.C
filters
libHttpClient.140.XDK.C.vcxproj.filters
libHttpClient.142.XDK.C.vcxproj.filters
1:262 (100%)
1:262 (100%)
view
175 x 2 Build/libHttpClient.141.XDK.C
Build/libHttpClient.142.XDK.C
filters
libHttpClient.141.XDK.C.vcxproj.filters
libHttpClient.142.XDK.C.vcxproj.filters
1:262 (100%)
1:262 (100%)
view
173 x 2 Build/libcrypto.140.Win32
Build/libcrypto.142.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.142.Win32.vcxproj.filters
1094:1352 (14%)
1076:1334 (13%)
view
173 x 2 Build/libcrypto.140.Win32
Build/libcrypto.143.Win32
filters
libcrypto.140.Win32.vcxproj.filters
libcrypto.143.Win32.vcxproj.filters
1094:1352 (14%)
1076:1334 (13%)
view
Duplicated Units
The list of top 11 duplicated units.
See data for all 11 unit duplicates...
Size#FoldersFilesLinesCode
14 x 2 Include/json_cpp/details
Include/json_cpp/details
SafeInt3.hpp
SafeInt3.hpp
1567:1586 
1611:1628 
view
13 x 2 Include/json_cpp/details
Include/json_cpp/details
SafeInt3.hpp
SafeInt3.hpp
1589:1605 
1631:1647 
view
12 x 2 Source/Task
Source/Task
WaitTimer_stl.cpp
WaitTimer_win32.cpp
226:241 
85:100 
view
12 x 2 Source/Task
Source/Task
WaitTimer_win32.cpp
WaitTimer_stl.cpp
85:100 
226:241 
view
8 x 2 Source/Task
Source/Task
ThreadPool_stl.cpp
ThreadPool_win32.cpp
251:262 
127:138 
view
8 x 2 Source/Task
Source/Task
ThreadPool_stl.cpp
ThreadPool_win32.cpp
264:272 
140:148 
view
7 x 2 Source/Logger
Source/Logger
trace.cpp
trace.cpp
20:27 
29:36 
view
7 x 2 Source/Logger
Source/Logger
trace.cpp
trace.cpp
29:36 
20:27 
view
6 x 2 Include/json_cpp/details
Include/json_cpp/details
json.hpp
json_serialization.hpp
385:391 
257:263 
view
6 x 2 Include/json_cpp
Include/json_cpp
json.h
json.h
1313:1319 
1325:1331 
view
6 x 2 Source/Task
Source/Task
ThreadPool_stl.cpp
ThreadPool_win32.cpp
24:30 
20:26 
view