diff options
Diffstat (limited to 'src/runtime/stack_test.go')
| -rw-r--r-- | src/runtime/stack_test.go | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/src/runtime/stack_test.go b/src/runtime/stack_test.go index 965c4e6838..485e327c41 100644 --- a/src/runtime/stack_test.go +++ b/src/runtime/stack_test.go @@ -453,3 +453,175 @@ func count(n int) int { } return 1 + count(n-1) } + +func BenchmarkStackCopyNoCache(b *testing.B) { + c := make(chan bool) + for i := 0; i < b.N; i++ { + go func() { + count1(1000000) + c <- true + }() + <-c + } +} + +func count1(n int) int { + if n == 0 { + return 0 + } + return 1 + count2(n-1) +} + +func count2(n int) int { + if n == 0 { + return 0 + } + return 1 + count3(n-1) +} + +func count3(n int) int { + if n == 0 { + return 0 + } + return 1 + count4(n-1) +} + +func count4(n int) int { + if n == 0 { + return 0 + } + return 1 + count5(n-1) +} + +func count5(n int) int { + if n == 0 { + return 0 + } + return 1 + count6(n-1) +} + +func count6(n int) int { + if n == 0 { + return 0 + } + return 1 + count7(n-1) +} + +func count7(n int) int { + if n == 0 { + return 0 + } + return 1 + count8(n-1) +} + +func count8(n int) int { + if n == 0 { + return 0 + } + return 1 + count9(n-1) +} + +func count9(n int) int { + if n == 0 { + return 0 + } + return 1 + count10(n-1) +} + +func count10(n int) int { + if n == 0 { + return 0 + } + return 1 + count11(n-1) +} + +func count11(n int) int { + if n == 0 { + return 0 + } + return 1 + count12(n-1) +} + +func count12(n int) int { + if n == 0 { + return 0 + } + return 1 + count13(n-1) +} + +func count13(n int) int { + if n == 0 { + return 0 + } + return 1 + count14(n-1) +} + +func count14(n int) int { + if n == 0 { + return 0 + } + return 1 + count15(n-1) +} + +func count15(n int) int { + if n == 0 { + return 0 + } + return 1 + count16(n-1) +} + +func count16(n int) int { + if n == 0 { + return 0 + } + return 1 + count17(n-1) +} + +func count17(n int) int { + if n == 0 { + return 0 + } + return 1 + count18(n-1) +} + +func count18(n int) int { + if n == 0 { + return 0 + } + return 1 + count19(n-1) +} + +func count19(n int) int { + if n == 0 { + return 0 + } + return 1 + count20(n-1) +} + +func count20(n int) int { + if n == 0 { + return 0 + } + return 1 + count21(n-1) +} + +func count21(n int) int { + if n == 0 { + return 0 + } + return 1 + count22(n-1) +} + +func count22(n int) int { + if n == 0 { + return 0 + } + return 1 + count23(n-1) +} + +func count23(n int) int { + if n == 0 { + return 0 + } + return 1 + count1(n-1) +} |
