source: benchmark/ctxswitch/goroutine.go @ 9f5bb817

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprno_listpersistent-indexerpthread-emulationqualifiedEnum
Last change on this file since 9f5bb817 was bf71cfd, checked in by Thierry Delisle <tdelisle@…>, 6 years ago

Moved up many directories in source

  • 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.