microsoft / Windows-Machine-Learning
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 7,932 lines of code in units (46.0% of code).
    • 10 very long units (1,713 lines of code)
    • 14 long units (955 lines of code)
    • 58 medium size units (1,783 lines of code)
    • 116 small units (1,682 lines of code)
    • 454 very small units (1,799 lines of code)
21% | 12% | 22% | 21% | 22%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cpp38% | 15% | 26% | 13% | 4%
h8% | 7% | 16% | 27% | 40%
cs31% | 0% | 15% | 24% | 27%
tsx0% | 23% | 19% | 27% | 29%
ts0% | 17% | 19% | 23% | 39%
js0% | 0% | 76% | 19% | 3%
py0% | 0% | 0% | 45% | 54%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Tools/WinMLRunner/src27% | 10% | 20% | 20% | 21%
Testing/SamplesTest/SamplesTest31% | 0% | 15% | 24% | 27%
Tools/WinMLDashboard/src/cpp15% | 22% | 32% | 14% | 14%
Tools/WinMLDashboard/src/components0% | 60% | 15% | 10% | 13%
Tools/WinMLDashboard/src/view0% | 17% | 14% | 32% | 36%
Tools/WinMLDashboard/src/native0% | 15% | 17% | 26% | 40%
Tools/WinMLDashboard/src0% | 0% | 73% | 18% | 7%
Testing/WinMLRunnerTest0% | 0% | 47% | 35% | 17%
Tools/WinMLDashboard/src/datastore0% | 0% | 36% | 43% | 19%
Tools/WinMLDashboard/src/fonts0% | 0% | 73% | 0% | 26%
Tools/WinMLDashboard/public0% | 0% | 0% | 45% | 54%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
void OutputHelper::WritePerformanceDataToCSV()
in Tools/WinMLRunner/src/OutputHelper.cpp
430 38 8
void OutputHelper::PrintResults()
in Tools/WinMLRunner/src/OutputHelper.cpp
230 14 7
void PopulateLearningModelDeviceList()
in Tools/WinMLRunner/src/LearningModelDeviceHelper.cpp
183 20 2
static ITensor CreateTensor()
in Tools/WinMLRunner/src/BindingUtilities.cpp
164 20 4
ITensor CreateBindableTensor()
in Tools/WinMLRunner/src/BindingUtilities.cpp
129 21 7
inline HRESULT D3DX12ParsePipelineStream()
in Tools/WinMLRunner/src/d3dx12.h
129 30 2
void PrintOrSaveEvaluationResults()
in Tools/WinMLRunner/src/BindingUtilities.cpp
120 23 5
public void Draw()
in Testing/SamplesTest/SamplesTest/MnistTest.cs
116 11 1
ITensor CreateBindableTensor()
in Tools/WinMLDashboard/src/cpp/DebugRunner/BindingUtilities.h
109 14 2
void OutputHelper::WritePerIterationPerformance()
in Tools/WinMLRunner/src/OutputHelper.cpp
103 19 3
100 26 4
public render()
in Tools/WinMLDashboard/src/components/KeyValueEditor.tsx
92 15 0
int run()
in Tools/WinMLRunner/src/Run.cpp
88 19 4
void DebugOperatorFactory::RegisterDebugSchema()
in Tools/WinMLDashboard/src/cpp/DebugRunner/debug_cpu.cpp
80 1 1
void CommandLineArgs::PrintUsage()
in Tools/WinMLRunner/src/CommandLineArgs.cpp
78 1 0
HRESULT DebugOperator::Compute()
in Tools/WinMLDashboard/src/cpp/DebugRunner/debug_cpu.cpp
73 19 1
void IterateBindAndEvaluate()
in Tools/WinMLRunner/src/Run.cpp
61 17 11
public render()
in Tools/WinMLDashboard/src/view/edit/netron/Netron.tsx
58 1 0
void ProcessDescriptor()
in Tools/WinMLRunner/src/BindingUtilities.cpp
58 11 4
SoftwareBitmap LoadImageFile()
in Tools/WinMLRunner/src/BindingUtilities.cpp
57 9 6