2013-03-19 6 views
1

잠재적으로 매우 작거나 수억 개까지 다양한 데이터 세트로 작업하고 있습니다.포인터 할당 대 포인터 계산

인접한 데이터 세트로 작업 할 때 포인터에 새 값을 대입 할 때 포인터 계산을 사용하여 원하는 위치로 진행할 때 기능 또는 성능에 차이가 있습니까?

예를 들어 데이터의 다음 구성원으로 진행할 때 포인터를 하나씩 증가 시키거나 해당 메모리 주소에 작업 포인터를 할당 할 수 있습니다 (어떤 이유로 든 이미 가지고 있다고 가정).

Visual Studio 2012를 컴파일러로 사용하는 Windows에서 작동합니다.

+1

이 데이터 구조의 멤버에 액세스하거나 완전히 무작위로 액세스 할 예측 가능한 패턴이 있습니까? – Alex

+0

예측 가능한 데이터 블록으로 분할되지만 블록 간의 거리가 항상 동일하지는 않습니다. 그래서, 둘다 조금. – Evan

답변

2

최근 Andrei Alexandrescu에 따르면 (see this link에 따르면 좋은 대화를 나눈 비디오에 대한 링크가 있습니다.) 현대 기계의 인접 액세스에 대한 포인터 산술을 통한 배열 색인 작성을 선호해야합니다.

그러나 최적화를위한 시간을 초월하는 규칙이 있습니다. 측정 값! :)

더 이상 정보가 없습니다. 다시 말할 필요가 없습니다. "아니오"이외의 기능 차이.