source: src/benchmark/ctxswitch/goroutine.go @ b21c77a

new-env
Last change on this file since b21c77a was 50abab9, checked in by Thierry Delisle <tdelisle@…>, 7 years ago

Added benchmarks for java and go

  • Property mode set to 100644
File size: 638 bytes
Line 
1package main
2
3import (
4    "fmt"
5    "runtime"
6    "time"
7)
8
9//=======================================
10// time context switch
11//=======================================
12
13var shake chan bool = make( chan bool )
14
15func ContextSwitch(N int) {
16        start := time.Now()
17        for i := 1; i <= N; i += 1 {
18                runtime.Gosched()
19        }
20        end := time.Now()
21        fmt.Printf("%d\n", end.Sub(start) / time.Duration(N))
22        shake <- true   // indicate completion
23}
24
25//=======================================
26// benchmark driver
27//=======================================
28
29func main() {
30        const NoOfTimes = 10000000
31        go ContextSwitch( NoOfTimes )           // context switch
32        <- shake
33}
Note: See TracBrowser for help on using the repository browser.