microsoft / elfie-arriba
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 3,525 units with 43,950 lines of code in units (64.2% of code).
    • 3 very long units (446 lines of code)
    • 153 long units (9,083 lines of code)
    • 408 medium size units (12,252 lines of code)
    • 692 small units (10,021 lines of code)
    • 2,269 very small units (12,148 lines of code)
1% | 20% | 27% | 22% | 27%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
cs1% | 20% | 27% | 22% | 27%
cpp0% | 35% | 41% | 15% | 7%
js0% | 0% | 0% | 31% | 68%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Arriba/Arriba1% | 14% | 33% | 20% | 29%
Elfie/Xsv13% | 10% | 42% | 24% | 9%
Arriba/Tools9% | 8% | 43% | 20% | 18%
XForm/XForm0% | 36% | 17% | 20% | 26%
Elfie/Elfie0% | 6% | 26% | 28% | 38%
XForm/XForm.Native0% | 37% | 40% | 14% | 6%
Arriba/Arriba.Communication0% | 8% | 29% | 28% | 32%
Arriba/Arriba.Client0% | 12% | 15% | 22% | 49%
Elfie/Elfie.EndToEnd0% | 28% | 47% | 21% | 2%
XForm/XForm.Generator0% | 16% | 36% | 22% | 24%
XForm/XForm.Prices0% | 58% | 0% | 0% | 41%
Elfie/Elfie.Merger0% | 40% | 28% | 12% | 18%
Arriba/Arriba.ClientExample0% | 24% | 42% | 26% | 6%
Elfie/SymbolSourceGet0% | 42% | 31% | 22% | 2%
Elfie/Elfie.Search0% | 7% | 54% | 25% | 12%
Elfie/Elfie.Indexer0% | 0% | 54% | 28% | 16%
Arriba/Arriba.ConsoleTest0% | 0% | 53% | 42% | 4%
Arriba/Arriba.Server0% | 0% | 22% | 59% | 18%
Elfie/SourceIndex0% | 0% | 65% | 34% | 0%
Arriba/Arriba.Query0% | 0% | 84% | 0% | 15%
Elfie/SymbolForge0% | 0% | 100% | 0% | 0%
XForm/XForm.Scanning0% | 0% | 36% | 52% | 11%
Arriba/Arriba.Web0% | 0% | 0% | 31% | 68%
XForm/XForm.IIS0% | 0% | 0% | 64% | 35%
Arriba/Arriba.Native0% | 0% | 0% | 71% | 28%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public bool TryConvert()
in Arriba/Arriba/Structures/Value.cs
171 46 2
Copy the input to the output()
in Elfie/Xsv/Program.cs
149 40 1
public void Crawl()
in Arriba/Tools/Arriba.TfsWorkItemCrawler/DefaultCrawler.cs
126 23 2
private object TryAsNumber()
in Arriba/Arriba/Structures/Value.cs
100 23 0
private bool AddUniqueMembers()
in Elfie/Elfie/Model/MergedMembersDatabase.cs
100 20 5
public override Array GetUniqueValuesFromColumn()
in Arriba/Arriba/Model/Query/DistinctQuery.cs
92 19 4
protected void ApplyTableSecurity()
in Arriba/Arriba.Client/Model/SecureDatabase.cs
91 21 3
private IExpression ParseTerm()
in Arriba/Arriba/Model/Query/QueryParser.cs
88 22 2
public static bool TryBuild()
in Arriba/Arriba/Model/Expressions/RangeToScan.cs
87 21 5
public long Run()
in XForm/XForm/InteractiveRunner.cs
85 14 0
public AggregationResult Compute()
in Arriba/Arriba/Model/Query/AggregationQuery.cs
82 13 1
private IExpression ParseOperatorAndValue()
in Arriba/Arriba/Model/Query/QueryParser.cs
82 15 3
private void ImportPublics()
in Elfie/Elfie/Model/AddReferenceDatabase.cs
82 19 5
public static void Merge()
in Elfie/Elfie.Merger/Program.cs
79 12 1
public void TsvSplit()
in XForm/XForm/Accessory/PerformanceComparisons.cs
77 8 0
public NegatedTryConvert TryGetNegatedTryConvert()
in XForm/XForm/Types/String8TypeProvider.cs
76 30 3
public override int GetHashCode()
in Arriba/Arriba/Structures/Value.cs
75 18 0
static void WhereN()
in XForm/XForm.Native/Comparer16.cpp
75 16 6
private async Task JSONArrayAppendAsync()
in Arriba/Arriba.Communication/Server/Application/ArribaImportApplication.cs
74 14 2
public static bool TryParse()
in Arriba/Arriba/Structures/IpRange.cs
74 14 2