Я хотел найти, что быстрее: структура или массив. Итак, я написал код GO, в котором я записываю 4 значения int (1,2,3 и 4) в элементы структуры, а затем в массив длины 4. Я пытался найти время, необходимое для записи.
Случай 1: сначала я записываю значения в структуру, а затем в массив. Здесь я обнаружил, что массив работает быстрее, чем структура.
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)
}
Случай 2: во-вторых, я записываю значения в массив, а затем в структуру. Здесь я обнаружил, что структура работает быстрее, чем массив.
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)
}
Почему производительность зависит от того, что я пишу первым? Тот, на который я пишу первым, оказывается медленнее. Почему это так?