microsoft / sql-server-language-extensions
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 484 units with 9,913 lines of code in units (63.5% of code).
    • 2 very long units (437 lines of code)
    • 20 long units (1,281 lines of code)
    • 173 medium size units (5,716 lines of code)
    • 104 small units (1,542 lines of code)
    • 185 very small units (937 lines of code)
4% | 12% | 57% | 15% | 9%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cpp5% | 13% | 59% | 14% | 6%
cs0% | 26% | 43% | 23% | 7%
inl0% | 0% | 86% | 4% | 8%
h0% | 0% | 7% | 44% | 47%
java0% | 0% | 0% | 0% | 100%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
language-extensions/java/src16% | 17% | 47% | 12% | 5%
language-extensions/python/src0% | 20% | 65% | 8% | 6%
language-extensions/dotnet-core-CSharp/src0% | 20% | 43% | 25% | 10%
language-extensions/R/src0% | 4% | 69% | 20% | 5%
language-extensions/java/include0% | 0% | 83% | 4% | 12%
language-extensions/R/common0% | 0% | 55% | 16% | 27%
language-extensions/dotnet-core-CSharp/include0% | 0% | 100% | 0% | 0%
language-extensions/R/include0% | 0% | 0% | 55% | 44%
language-extensions/python/include0% | 0% | 0% | 57% | 42%
language-extensions/dotnet-core-CSharp/sample0% | 0% | 0% | 100% | 0%
language-extensions/java/sdk0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
void JavaArgContainer::CreateOdbcArgObject()
in language-extensions/java/src/JavaArgContainer.cpp
294 19 3
jobject JavaArgContainer::CreateJavaArgObject()
in language-extensions/java/src/JavaArgContainer.cpp
143 15 2
void JavaArg::DeepCopyValue()
in language-extensions/java/src/JavaArgContainer.cpp
98 15 3
void JavaArg::Cleanup()
in language-extensions/java/src/JavaArgContainer.cpp
90 16 0
void PythonOutputDataSet::RetrieveStringColumnFromDataFrame()
in language-extensions/python/src/PythonDataSet.cpp
90 13 4
public unsafe void AddParam()
in language-extensions/dotnet-core-CSharp/src/managed/CSharpParamContainer.cs
78 18 8
SQLRETURN PythonLibrarySession::UninstallLibrary()
in language-extensions/python/src/PythonLibrarySession.cpp
68 9 4
public unsafe void ReplaceParam()
in language-extensions/dotnet-core-CSharp/src/managed/CSharpParamContainer.cs
66 17 3
SQLRETURN RLibrarySession::UninstallLibrary()
in language-extensions/R/src/RLibrarySession.cpp
64 8 2
SQLRETURN InstallExternalLibrary()
in language-extensions/python/src/PythonExtension.cpp
63 6 9
SQLRETURN PythonLibrarySession::InstallLibrary()
in language-extensions/python/src/PythonLibrarySession.cpp
62 7 7
private unsafe void ExtractColumn()
in language-extensions/dotnet-core-CSharp/src/managed/CSharpOutputDataSet.cs
61 15 2
SQLRETURN InitSession()
in language-extensions/java/src/javaextension.cpp
59 5 11
void PythonOutputDataSet::RetrieveDateTimeColumnFromDataFrame()
in language-extensions/python/src/PythonDataSet.cpp
56 8 4
private unsafe void AddColumn()
in language-extensions/dotnet-core-CSharp/src/managed/CSharpInputDataSet.cs
54 14 4
void JavaDataset::Init()
in language-extensions/java/src/JavaDataset.cpp
54 7 2
void JavaSession::GetUserClassInfo()
in language-extensions/java/src/JavaSession.cpp
54 7 0
void JavaSession::CleanupOutputDataBuffers()
in language-extensions/java/src/JavaSession.cpp
54 16 0
void PythonOutputDataSet::RetrieveRawColumnFromDataFrame()
in language-extensions/python/src/PythonDataSet.cpp
54 6 4
void PythonStringParam::RetrieveValueAndStrLenInd()
in language-extensions/python/src/PythonParam.cpp
53 9 1