Slide 1

Slide 1 text

& D

Slide 2

Slide 2 text

02 /1 • • W 4 4 IS M h I ? • 8 // 9 • ? a 79B B • O V

Slide 3

Slide 3 text

• D • 3 3 • 3 • D • • • • •

Slide 4

Slide 4 text

• • • • • • • • • • 4

Slide 5

Slide 5 text

-1 -D • 1 . I : • / 5 % . / . -1 - -1 - • • G • G • G • - • 11 . .- . / . -1 - -1 - 1

Slide 6

Slide 6 text

1 • ( . : D package main import ( "fmt" ) func main() { array := [4]string{} fruits := []string{ "apple", "orange", "grape", "kiwi", "pineapple", } for i, f := range fruits { array[i] = f } fmt.Printf("%#v", array) } panic: runtime error: index out of range goroutine 1 [running]: main.main() /tmp/sandbox760713094/main.go:17 +0x160 Program exited: status 2. : : • ) (/ 1(. : ac • 7. : D • 67 b • . 7 f e

Slide 7

Slide 7 text

• 2 1 7 / ( ) package main import ( "fmt" "runtime" ) func main() { array := [4]string{} fruits := []string{ "apple", "orange", "grape", "kiwi", "pineapple", } for i, f := range fruits { // Breakpoint  runtime.Breakpoint() array[i] = f } fmt.Printf("%#v", array) }

Slide 8

Slide 8 text

• / /CG SR D • / :2 ) 2 / 8: 8 : / • ( L

Slide 9

Slide 9 text

• . • W 9 G S • / • • • / . • /

Slide 10

Slide 10 text

. ) 01 . 1 5 5 5 5 5 5 ) .5( 0: $ package main import ( "fmt" "github.com/pkg/profile" ) func fib(n int) int { if n < 2 { return n } return fib(n-1) + fib(n-2) } func main() { defer profile.Start(profile.ProfilePath(".")).Stop() fmt.Println("Start") for i := 0; i < 1000; i++ { fib(50) } fmt.Println("Finish") }

Slide 11

Slide 11 text

 

Slide 12

Slide 12 text

• B 1 • 1 • 1 • 1 1 • 1 • 2 C 1 (e.g. go tool pprof --text pprof/test.bin pprof/cpu.out)

Slide 13

Slide 13 text

• 1 A • N : 4.A • /4 D ! • 088 3 433 42 38