golang / dl
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 194 units with 1,065 lines of code in units (71.5% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 3 medium complex units (211 lines of code)
    • 6 simple units (180 lines of code)
    • 185 very simple units (674 lines of code)
0% | 0% | 19% | 16% | 63%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
go0% | 0% | 19% | 16% | 63%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
internal0% | 0% | 37% | 31% | 31%
go1.11rc10% | 0% | 0% | 0% | 100%
go1.15.50% | 0% | 0% | 0% | 100%
go1.10.80% | 0% | 0% | 0% | 100%
go1.15.40% | 0% | 0% | 0% | 100%
go1.17.10% | 0% | 0% | 0% | 100%
go1.13.140% | 0% | 0% | 0% | 100%
go1.14.50% | 0% | 0% | 0% | 100%
go1.15.30% | 0% | 0% | 0% | 100%
go1.16.20% | 0% | 0% | 0% | 100%
go1.8rc20% | 0% | 0% | 0% | 100%
go1.10.10% | 0% | 0% | 0% | 100%
go1.13.130% | 0% | 0% | 0% | 100%
go1.8.20% | 0% | 0% | 0% | 100%
go1.15.130% | 0% | 0% | 0% | 100%
go1.10rc20% | 0% | 0% | 0% | 100%
go1.12.80% | 0% | 0% | 0% | 100%
go1.12.110% | 0% | 0% | 0% | 100%
go1.10.70% | 0% | 0% | 0% | 100%
go1.17beta10% | 0% | 0% | 0% | 100%
go1.18beta10% | 0% | 0% | 0% | 100%
go1.14.80% | 0% | 0% | 0% | 100%
go1.12beta10% | 0% | 0% | 0% | 100%
go1.12.60% | 0% | 0% | 0% | 100%
go1.17.60% | 0% | 0% | 0% | 100%
go1.9beta10% | 0% | 0% | 0% | 100%
go1.15.150% | 0% | 0% | 0% | 100%
go1.11.110% | 0% | 0% | 0% | 100%
go1.14.150% | 0% | 0% | 0% | 100%
go1.8.50% | 0% | 0% | 0% | 100%
go1.16.30% | 0% | 0% | 0% | 100%
go1.11.80% | 0% | 0% | 0% | 100%
go1.16.70% | 0% | 0% | 0% | 100%
go1.14.130% | 0% | 0% | 0% | 100%
go1.11rc20% | 0% | 0% | 0% | 100%
go1.11.20% | 0% | 0% | 0% | 100%
go1.10.30% | 0% | 0% | 0% | 100%
go1.17.30% | 0% | 0% | 0% | 100%
go1.15.20% | 0% | 0% | 0% | 100%
go1.10.20% | 0% | 0% | 0% | 100%
go1.5.40% | 0% | 0% | 0% | 100%
go1.8.60% | 0% | 0% | 0% | 100%
go1.100% | 0% | 0% | 0% | 100%
go1.150% | 0% | 0% | 0% | 100%
go1.9.50% | 0% | 0% | 0% | 100%
go1.15rc10% | 0% | 0% | 0% | 100%
go1.13.30% | 0% | 0% | 0% | 100%
go1.16.120% | 0% | 0% | 0% | 100%
go1.9.60% | 0% | 0% | 0% | 100%
go1.11.30% | 0% | 0% | 0% | 100%
go1.8beta20% | 0% | 0% | 0% | 100%
go1.8.10% | 0% | 0% | 0% | 100%
go1.13.150% | 0% | 0% | 0% | 100%
go1.14rc10% | 0% | 0% | 0% | 100%
go1.18beta20% | 0% | 0% | 0% | 100%
go1.13.60% | 0% | 0% | 0% | 100%
go1.11.120% | 0% | 0% | 0% | 100%
go1.15.10% | 0% | 0% | 0% | 100%
gotip0% | 0% | 0% | 0% | 100%
go1.8.30% | 0% | 0% | 0% | 100%
go1.14.60% | 0% | 0% | 0% | 100%
go1.9beta20% | 0% | 0% | 0% | 100%
go1.9rc20% | 0% | 0% | 0% | 100%
go1.17rc10% | 0% | 0% | 0% | 100%
go1.13.70% | 0% | 0% | 0% | 100%
go1.9.30% | 0% | 0% | 0% | 100%
go1.12.50% | 0% | 0% | 0% | 100%
go1.12beta20% | 0% | 0% | 0% | 100%
go1.12.130% | 0% | 0% | 0% | 100%
go1.9rc10% | 0% | 0% | 0% | 100%
go1.140% | 0% | 0% | 0% | 100%
go1.13.50% | 0% | 0% | 0% | 100%
go1.17.50% | 0% | 0% | 0% | 100%
go1.11.90% | 0% | 0% | 0% | 100%
go1.14.120% | 0% | 0% | 0% | 100%
go1.12.120% | 0% | 0% | 0% | 100%
go1.13.80% | 0% | 0% | 0% | 100%
go1.11beta20% | 0% | 0% | 0% | 100%
go1.16.100% | 0% | 0% | 0% | 100%
go1.9.40% | 0% | 0% | 0% | 100%
go1.6.40% | 0% | 0% | 0% | 100%
go1.80% | 0% | 0% | 0% | 100%
go1.14.100% | 0% | 0% | 0% | 100%
go1.13.90% | 0% | 0% | 0% | 100%
go1.12.90% | 0% | 0% | 0% | 100%
go1.9.70% | 0% | 0% | 0% | 100%
go1.15.90% | 0% | 0% | 0% | 100%
go1.16.90% | 0% | 0% | 0% | 100%
go1.12.170% | 0% | 0% | 0% | 100%
go1.12.30% | 0% | 0% | 0% | 100%
go1.10.40% | 0% | 0% | 0% | 100%
go1.16.10% | 0% | 0% | 0% | 100%
go1.16.130% | 0% | 0% | 0% | 100%
go1.10.50% | 0% | 0% | 0% | 100%
go1.13.120% | 0% | 0% | 0% | 100%
go1.16rc10% | 0% | 0% | 0% | 100%
go1.11.130% | 0% | 0% | 0% | 100%
go1.8rc30% | 0% | 0% | 0% | 100%
go1.15.100% | 0% | 0% | 0% | 100%
go1.13.10% | 0% | 0% | 0% | 100%
go1.15.70% | 0% | 0% | 0% | 100%
go1.14.140% | 0% | 0% | 0% | 100%
go1.160% | 0% | 0% | 0% | 100%
go1.11.100% | 0% | 0% | 0% | 100%
go1.10beta10% | 0% | 0% | 0% | 100%
go1.13.100% | 0% | 0% | 0% | 100%
go1.11.60% | 0% | 0% | 0% | 100%
go1.120% | 0% | 0% | 0% | 100%
go1.12rc10% | 0% | 0% | 0% | 100%
go1.11beta10% | 0% | 0% | 0% | 100%
go1.14.90% | 0% | 0% | 0% | 100%
go1.12.20% | 0% | 0% | 0% | 100%
go1.15.80% | 0% | 0% | 0% | 100%
go1.13.40% | 0% | 0% | 0% | 100%
go1.8.40% | 0% | 0% | 0% | 100%
go1.7.60% | 0% | 0% | 0% | 100%
go1.12.140% | 0% | 0% | 0% | 100%
go1.13rc20% | 0% | 0% | 0% | 100%
go1.8beta10% | 0% | 0% | 0% | 100%
go1.9.10% | 0% | 0% | 0% | 100%
go1.16.50% | 0% | 0% | 0% | 100%
go1.15beta10% | 0% | 0% | 0% | 100%
go1.8rc10% | 0% | 0% | 0% | 100%
go1.12.10% | 0% | 0% | 0% | 100%
go1.17.40% | 0% | 0% | 0% | 100%
go1.9.20% | 0% | 0% | 0% | 100%
go1.10rc10% | 0% | 0% | 0% | 100%
go1.12.70% | 0% | 0% | 0% | 100%
go1.14.70% | 0% | 0% | 0% | 100%
go1.130% | 0% | 0% | 0% | 100%
go1.11.40% | 0% | 0% | 0% | 100%
go1.10beta20% | 0% | 0% | 0% | 100%
go1.12.40% | 0% | 0% | 0% | 100%
go1.13.110% | 0% | 0% | 0% | 100%
go1.10.60% | 0% | 0% | 0% | 100%
go1.11.10% | 0% | 0% | 0% | 100%
go1.16.110% | 0% | 0% | 0% | 100%
go1.15.120% | 0% | 0% | 0% | 100%
go1.110% | 0% | 0% | 0% | 100%
go1.12.160% | 0% | 0% | 0% | 100%
go1.16.40% | 0% | 0% | 0% | 100%
go1.14.20% | 0% | 0% | 0% | 100%
go1.90% | 0% | 0% | 0% | 100%
go1.17rc20% | 0% | 0% | 0% | 100%
go1.16.80% | 0% | 0% | 0% | 100%
go1.14.110% | 0% | 0% | 0% | 100%
go1.14.10% | 0% | 0% | 0% | 100%
go1.15.110% | 0% | 0% | 0% | 100%
go1.15rc20% | 0% | 0% | 0% | 100%
go1.12.150% | 0% | 0% | 0% | 100%
go1.14beta10% | 0% | 0% | 0% | 100%
go1.15.140% | 0% | 0% | 0% | 100%
go1.16.60% | 0% | 0% | 0% | 100%
go1.11beta30% | 0% | 0% | 0% | 100%
go1.13rc10% | 0% | 0% | 0% | 100%
go1.13.20% | 0% | 0% | 0% | 100%
go1.8.70% | 0% | 0% | 0% | 100%
go1.12.100% | 0% | 0% | 0% | 100%
go1.15.60% | 0% | 0% | 0% | 100%
go1.16beta10% | 0% | 0% | 0% | 100%
go1.14.30% | 0% | 0% | 0% | 100%
go1.14.40% | 0% | 0% | 0% | 100%
go1.170% | 0% | 0% | 0% | 100%
go1.13beta10% | 0% | 0% | 0% | 100%
go1.17.20% | 0% | 0% | 0% | 100%
go1.11.50% | 0% | 0% | 0% | 100%
go1.11.70% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
func installTip()
in internal/version/gotip.go
92 21 2
func unpackTarGz()
in internal/version/version.go
66 19 2
func install()
in internal/version/version.go
53 17 2
func unpackZip()
in internal/version/version.go
38 10 2
func RunTip()
in internal/version/gotip.go
28 9 0
func main()
in internal/genv/main.go
41 9 0
func copyFromURL()
in internal/version/version.go
37 8 2
func homedir()
in internal/version/version.go
19 7 0
func Run()
in internal/version/version.go
17 6 1
func golangOrgDlRoot()
in internal/genv/main.go
22 5 0
func verifySHA256()
in internal/version/version.go
15 4 2
func slurpURLToString()
in internal/version/version.go
15 4 1
func versionArchiveURL()
in internal/version/version.go
12 4 1
func makeScript()
in internal/version/gotip.go
10 3 0
func runGo()
in internal/version/version.go
17 3 1
func unpackArchive()
in internal/version/version.go
10 3 2
func docHost()
in internal/genv/main.go
6 3 1
func versionNoPatch()
in internal/genv/main.go
11 3 1
func failf()
in internal/genv/main.go
7 3 2
func()
in internal/version/version.go
9 2 1