>백엔드 개발 >Golang >Go 맵에서 키를 효율적으로 분할하려면 어떻게 해야 합니까?

Go 맵에서 키를 효율적으로 분할하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-27 17:50:11529검색

How Can I Efficiently Slice Keys from a Go Map?

Go에서 지도에서 키 분할

질문:

더 효율적인 방법이 있나요? 지도에서 키 조각을 얻으려면 하시겠습니까?

현재 일반적인 접근 방식은 맵을 반복하여 키를 슬라이스에 복사하는 것입니다.

i := 0
keys := make([]int, len(mymap))
for k := range mymap {
    keys[i] = k
    i++
}

답변:

지정된 슬라이스 용량으로 make 기능을 사용하면 재할당:

keys := make([]int, len(mymap))

i := 0
for k := range mymap {
    keys[i] = k
    i++
}

이 접근 방식은 약간 더 간결하며 슬라이스 추가와 관련된 오버헤드를 제거합니다. 많은 수의 키가 포함된 맵을 사용한 테스트에서 추가 기능을 사용하는 것보다 20% 더 빠른 것으로 나타났습니다.

make 함수가 슬라이스의 용량을 설정하는 동안 추가로 인해 여전히 일부 용량이 발생한다는 점은 주목할 가치가 있습니다. 추가할 때마다 용량에 도달했는지 확인하는 추가 오버헤드입니다. 이 경우 배열 구성원을 직접 할당하면 성능이 향상될 수 있습니다.

위 내용은 Go 맵에서 키를 효율적으로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.