Junior — Middle
Sync.Map жана синхрондоштурулган mutex колдонуп маалыматка кирүү ылдамдыгын салыштырып анализдөө кандай болду?
sobes.tech AI
AIден жооп
Go тилинде маалыматтарга кирүүнүн ылдамдыгын салыштыруу үчүн sync.Map жана синхрондоштурулган mutex (sync.Mutex) колдонуп, testing пакети аркылуу бенчмарктарды жүргүздүм.
Негизги пункттар:
sync.Mapкөп окуу операциялары жана аз жазуу операциялары менен сценарийлер үчүн оптималдаштырылган.- Mutex жөнөкөй картанын (
map) кирүүсүндө блоктоо камсыздайт, бул жогорку атаандаштыкта кыска жолду түзүшү мүмкүн.
Жөнөкөй бенчмарк мисалы:
func BenchmarkSyncMapLoad(b *testing.B) {
var m sync.Map
m.Store("key", "value")
b.ResetTimer()
for i := 0; i < b.N; i++ {
m.Load("key")
}
}
func BenchmarkMutexMapLoad(b *testing.B) {
m := make(map[string]string)
m["key"] = "value"
var mu sync.Mutex
b.ResetTimer()
for i := 0; i < b.N; i++ {
mu.Lock()
_ = m["key"]
mu.Unlock()
}
}
Менин тесттеримде, sync.Map жогорку деңгээлдеги атаандаштыкта жакшы иштеди, ал эми mutex төмөн атаандаштыкта жана тез жазууларда тезирээк болду. Тандоо конкреттүү колдонуу сценарийине көз каранды.