microsoft / ConcordExtensibilitySamples
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 450 units with 6,118 lines of code in units (66.5% of code).
    • 5 very long units (696 lines of code)
    • 15 long units (1,057 lines of code)
    • 47 medium size units (1,422 lines of code)
    • 89 small units (1,264 lines of code)
    • 294 very small units (1,679 lines of code)
11% | 17% | 23% | 20% | 27%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs12% | 13% | 23% | 22% | 28%
cpp0% | 76% | 5% | 3% | 14%
h0% | 0% | 80% | 0% | 19%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Iris/FrontEndTest26% | 8% | 5% | 26% | 33%
Iris/IrisCompiler8% | 17% | 25% | 20% | 28%
CppCustomVisualizer/dll0% | 82% | 0% | 0% | 17%
HelloWorld/Cpp0% | 40% | 48% | 0% | 10%
Iris/ic0% | 37% | 37% | 19% | 6%
Iris/IrisExtension0% | 0% | 57% | 23% | 19%
CppCustomVisualizer/TargetApp0% | 0% | 0% | 100% | 0%
HelloWorld/Cs0% | 0% | 0% | 0% | 100%
Iris/IrisRuntime0% | 0% | 0% | 0% | 100%
Iris/xplat-package0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void Program04()
in Iris/FrontEndTest/SamplePrograms.cs
181 4 0
protected void ParseStatement()
in Iris/IrisCompiler/FrontEnd/Translator.cs
150 27 1
public void Program03()
in Iris/FrontEndTest/SamplePrograms.cs
127 2 0
public void Program05()
in Iris/FrontEndTest/SamplePrograms.cs
122 4 0
private void MoveNextOnLine()
in Iris/IrisCompiler/FrontEnd/Lexer.cs
116 31 0
95 13 2
public void EmitDeferredInstructions()
in Iris/IrisCompiler/BackEnd/MethodGenerator.cs
89 28 0
84 6 3
HRESULT CCppCustomVisualizerService::FileTimeToText()
in CppCustomVisualizer/dll/_EntryPoint.cpp
76 7 2
protected void ParseMethod()
in Iris/IrisCompiler/FrontEnd/Translator.cs
76 17 1
public void Program07()
in Iris/FrontEndTest/SamplePrograms.cs
75 2 0
private IrisType ProcessCall()
in Iris/IrisCompiler/FrontEnd/Translator.cs
75 22 3
public void Program06()
in Iris/FrontEndTest/SamplePrograms.cs
69 2 0
public static string TokenName()
in Iris/IrisCompiler/FrontEnd/Lexer.cs
67 28 1
protected void ParseProgram()
in Iris/IrisCompiler/FrontEnd/Translator.cs
67 13 0
HRESULT STDMETHODCALLTYPE CHelloWorldService::FilterNextFrame()
in HelloWorld/Cpp/dll/_HelloWorldService.cpp
59 8 3
public void Flush()
in Iris/IrisCompiler/BackEnd/PeEmitter.cs
58 13 0
public void Operator()
in Iris/IrisCompiler/BackEnd/TextEmitter.cs
58 16 1
private static bool TryParseArgs()
in Iris/ic/CompilerRunner.cs
58 15 3
protected IrisType ParseBaseExpression()
in Iris/IrisCompiler/FrontEnd/Translator.cs
51 15 1