Add -cpuprofile option (#14)

This commit is contained in:
Hajime Hoshi 2014-12-07 06:03:13 +09:00
parent 4eb6c8d131
commit 6a2229f973
2 changed files with 28 additions and 1 deletions

View File

@ -1,18 +1,36 @@
package main
import (
"flag"
"github.com/hajimehoshi/ebiten/example/blocks"
"github.com/hajimehoshi/ebiten/ui"
"github.com/hajimehoshi/ebiten/ui/glfw"
"log"
"os"
"runtime"
"runtime/pprof"
)
func init() {
runtime.LockOSThread()
}
var cpuProfile = flag.String("cpuprofile", "", "write cpu profile to file")
func main() {
flag.Parse()
if *cpuProfile != "" {
f, err := os.Create(*cpuProfile)
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
u := new(glfw.UI)
game := blocks.NewGame()
ui.Run(u, game, blocks.ScreenWidth, blocks.ScreenHeight, 2, "Ebiten Demo", 60)
if err := ui.Run(u, game, blocks.ScreenWidth, blocks.ScreenHeight, 2, "Ebiten Demo", 60); err != nil {
log.Fatal(err)
}
}

View File

@ -26,6 +26,15 @@ changed easily.
:; go run main.go
```
### How to benchmark the example
```
:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
:; go build -o=example main.go
:; ./example -cpuprofile=cpu.out
:; go tool pprof ./example cpu.out
```
## License
Copyright 2014 Hajime Hoshi