성능 측면에서 '직접'여러 번 배열 요소에 액세스하거나 해당 값을 변수에 할당하고 해당 변수를 사용하는 것이 더 낫습니까? 다음 코드에서 여러 번 값을 참조한다고 가정합니다.직접 배열 요소에 액세스하는 것과 변수에 할당하는 것
이 질문에 대한 추론은 배열 요소에 액세스 할 때마다 여분의 공간을 필요로하지 않고 수행 할 때마다 약간의 컴퓨팅 비용이 필요하다는 것입니다. 반면에 값을 변수에 저장하면이 액세스 비용이 제거되지만 추가 공간이 필요합니다.
// use a variable to store the value
Temp = ArrayOfValues(0)
If Temp > 100 Or Temp < 50 Then
Dim Blah = Temp
...
// reference the array element 'directly'
If ArrayOfValues(0) > 100 Or ArrayOfValues(0) < 50 Then
Dim Blah = ArrayOfValues(0)
...
나는 우리가 어느 시점에서 (값이 여러 번 참조 할 것) 실제 사용에서 큰 규모에 대해 얘기하고 이것은 사소한 예를 알지만, 가정은 시간과 공간의 가치를 계산 사이의 트레이드 오프입니다 고려한다면 (전혀)?
최적화 컴파일러는 HLL에 대해 완전히 부끄러워 할 것입니다. 어셈블리를 사용하거나 최적화를 해제 한 경우 레지스터는 캐시보다 빠르기 때문에 자주 사용하는 값을 가능한 많이 레지스터에로드해야합니다. 일반적으로 레지스터 압박과 메모리 계층 사이의 전환점은 아마도 경험적 문제 일 것이라고 생각합니다. – Patrick87