microsoft / SPTAG
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 652 units with 11,589 lines of code in units (43.1% of code).
    • 15 very long units (2,497 lines of code)
    • 34 long units (2,329 lines of code)
    • 99 medium size units (3,091 lines of code)
    • 152 small units (2,154 lines of code)
    • 352 very small units (1,518 lines of code)
21% | 20% | 26% | 18% | 13%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
h21% | 15% | 26% | 19% | 17%
cpp19% | 29% | 28% | 16% | 5%
hxx23% | 18% | 24% | 19% | 13%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
AnnService/inc/Core19% | 19% | 25% | 18% | 16%
AnnService/inc/SSDServing58% | 14% | 22% | 2% | 1%
AnnService/src/BalancedDataPartition45% | 37% | 14% | 1% | 0%
AnnService/src/IndexSearcher76% | 23% | 0% | 0% | 0%
AnnService/src/SSDServing91% | 0% | 0% | 8% | 0%
AnnService/src/Core0% | 22% | 45% | 27% | 5%
AnnService/src/Helper0% | 93% | 0% | 0% | 6%
AnnService/src/IndexBuilder0% | 100% | 0% | 0% | 0%
AnnService/inc/Helper0% | 4% | 27% | 41% | 26%
AnnService/src/Client0% | 100% | 0% | 0% | 0%
AnnService/inc/Socket0% | 0% | 68% | 13% | 18%
Wrappers/src0% | 0% | 0% | 30% | 69%
Wrappers/inc0% | 0% | 0% | 0% | 100%
AnnService/src/Server0% | 0% | 0% | 0% | 100%
AnnService/src/Aggregator0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
void Search()
in AnnService/inc/SSDServing/SSDIndex.h
334 56 1
void Process()
in AnnService/src/BalancedDataPartition/main.cpp
246 62 1
bool BuildIndex()
in AnnService/inc/Core/SPANN/ExtraFullGraphSearcher.h
191 49 3
hxx
void getTailNeighborsTPT()
in AnnService/inc/Core/Common/cuda/TailNeighbors.hxx
187 30 12
int Process()
in AnnService/src/IndexSearcher/main.cpp
185 38 2
void PartitionByTptreeCore()
in AnnService/inc/Core/Common/NeighborhoodGraph.h
171 28 5
void OutputSSDIndexFile()
in AnnService/inc/Core/SPANN/ExtraFullGraphSearcher.h
169 33 9
void SelectHeadStatically()
in AnnService/inc/SSDServing/SelectHead.h
146 22 4
hxx
void buildGraphGPU_Batch()
in AnnService/inc/Core/Common/cuda/KNN.hxx
145 21 9
void SelectHeadDynamically()
in AnnService/inc/SSDServing/SelectHead.h
135 21 4
void ProcessWithoutMPI()
in AnnService/src/BalancedDataPartition/main.cpp
134 32 0
int BootProgram()
in AnnService/src/SSDServing/main.cpp
120 25 7
virtual void SearchIndex()
in AnnService/inc/Core/SPANN/ExtraFullGraphSearcher.h
119 22 6
ErrorCode Bootstrap()
in AnnService/inc/SSDServing/SelectHead.h
113 23 1
hxx
__global__ void findRNG_leaf_nodes()
in AnnService/inc/Core/Common/cuda/KNN.hxx
102 27 5
inline float HardMultipleClustersAssign()
in AnnService/src/BalancedDataPartition/main.cpp
99 22 10
bool Index::SelectHead()
in AnnService/src/Core/SPANN/SPANNIndex.cpp
94 19 1
int LoadingHeadInfo()
in AnnService/inc/Core/SPANN/ExtraFullGraphSearcher.h
93 17 3
hxx
__global__ void findRNG_strict()
in AnnService/inc/Core/Common/cuda/KNN.hxx
91 27 7
inline float MultipleClustersAssign()
in AnnService/src/BalancedDataPartition/main.cpp
91 28 10