-
Notifications
You must be signed in to change notification settings - Fork 0
Go test bench
jaeseok.an edited this page May 17, 2019
·
1 revision
go test -bench=Fib40 -benchtime=20s
Empty interface{} 빈 interface. 임의의 type을 받을 때 사용 (void *type 같은 개념. 다른 언어의 dynamic type에 해당)
func main() { var a interface{} = 1
i := a // a와 i 는 dynamic type, 값은 1
j := a.(int) // j는 int 타입, 값은 1
println(i) // 포인터주소 출력
println(j) // 1 출력
}
interface type x에 대해 x.(T) 라고 할 경우 x가 type T이면 T type인 x를 리턴하고 nil 이거나 T type이 아니면 runtime error 가 발생
interface의 구현 여부 체크
type Duck struct {
a int
}
func (d Duck)quack() {
fmt.Println("called quack()")
}
type Quacker interface { quack() }
func main() { var donald Duck
if v, ok := interface{}(donald).(Quacker); ok {
fmt.Println(v, ok)
v.quack()
} else {
fmt.Println("false")
}
}
수신, 송신 only type으로 사용가능
수신 : x <-chan int 송신 : y chan→ int
pprof는 특정 timerange를 설정하거나, server의 현재 상태를 볼수 있다. 특정 range는 pprof.Start/Stop()을 수행해야 한다. svg 이미지 형태로 pprof 보기 결과는 브라우져로 image를 열어 볼수 있다.
go tool pprof -timeout=600 -sample_index=inuse_space --output=./dump01.svg http://192.168.0.248:10101/debug/pprof/heap\?debug\=1
open ./dump01.svg
test