我想找到哪个更快:结构与数组。因此,我编写了一段 GO 代码,其中将 4 个 int 值(1、2、3 和 4)写入结构体的成员,然后写入长度为 4 的数组。我试图找出写入所需的时间。
Case1:首先,我将值写入结构体,然后写入数组。在这里我发现数组比结构更快。
package main
import (
"fmt"
"time"
)
type abc struct {
a, b, c, d int
}
func main() {
var obj abc
t1 := time.Now()
obj.a = 1
obj.b = 2
obj.c = 3
obj.d = 4
t2 := time.Since(t1)
fmt.Println("Struct access time: : ", t2)
a := make([]int, 4)
t3 := time.Now()
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
t4 := time.Since(t3)
fmt.Println("Array access time: : ", t4)
}
Case2:其次,我将值写入数组,然后写入结构体。在这里我发现结构比数组更快。
package main
import (
"fmt"
"time"
)
type abc struct {
a, b, c, d int
}
func main() {
var obj abc
a := make([]int, 4)
t3 := time.Now()
a[0] = 1
a[1] = 2
a[2] = 3
a[3] = 4
t4 := time.Since(t3)
fmt.Println("Array access time: : ", t4)
t1 := time.Now()
obj.a = 1
obj.b = 2
obj.c = 3
obj.d = 4
t2 := time.Since(t1)
fmt.Println("Struct access time: : ", t2)
}
为什么性能取决于我先写的内容?我第一个写信的人似乎比较慢。为什么会这样呢?