在學習中了解到defer相比沒有使用defer會消耗部分時間,是以測試了下,使用與不使用defer的性能測試,通過實驗,defer影響程式的速度基本可以忽略不計。
package main
import (
"time"
"fmt"
)
func main() {
t1 := time.Now()
for i := 0;i < 1000000;i++ {
test1()
}
et1 := time.Since(t1)
fmt.Println("Run time: ", et1)
t2 := time.Now()
for i := 0;i < 1000000;i++ {
test2()
}
et2 := time.Since(t2)
fmt.Println("Run time: ", et2)
t3 := time.Now()
for i := 0;i < 1000000;i++ {
test3()
}
et3 := time.Since(t3)
fmt.Println("Run time: ", et3)
}
func test1() {
func() {
for i := 0;i <10;i++{
}
}()
}
func test2() {
defer func() {
for i := 0;i <10;i++{
}
}()
}
func test3() {
for i := 0;i <10;i++{
}
}
Run time: 11.0081ms
Run time: 70.0497ms
Run time: 11.0076ms