스트럭쳐형 배열을 선언하려고 하는데요
1번 myst arr[100];
2번 myst* arr[100]; 반복문 arr[i] = new myst();
1번은 그냥 배열로 선언한거구요
2번은 포인터 배열을 선언해서 객체메모리를 할당해주는 형식입니다.
저걸 인덱스로 스트럭쳐를 접근할때 과연 1번 2번 속도 차이가 있을까요?
제가 1번을 2번으로 바꿔야 하는 상황이 되서
과연 2번일 경우에 인덱스로 자료를 수정 할때 오버헤드가 큰지 궁금하네요
1번 myst arr[100];
2번 myst* arr[100]; 반복문 arr[i] = new myst();
1번은 그냥 배열로 선언한거구요
2번은 포인터 배열을 선언해서 객체메모리를 할당해주는 형식입니다.
저걸 인덱스로 스트럭쳐를 접근할때 과연 1번 2번 속도 차이가 있을까요?
제가 1번을 2번으로 바꿔야 하는 상황이 되서
과연 2번일 경우에 인덱스로 자료를 수정 할때 오버헤드가 큰지 궁금하네요
무시하세염\'\'
차이가 있긴 있겠지 근데 쥐죶만큼 있겠지
퍼포먼스가 중요하다면, 차이가 클거라고 봐. 2번은 1번에 비해 포인터 연산이 오버헤드가 되기도 하고, 그것보다 더 큰차이점은 1번의 경우 데이터가 물리적으로 연속되게 위치됨이 보장됨으로, 배열접근시 성능차이가 상당히 나. 캐시 적중률이 1번의 경우 훨씬더 높게 나타나기때문에, 특히 멀티미디어 데이터처럼 많은 데이터처리시 체감상 확 느껴질 정도의 차이를 보일거야.