13635
2016-05-06 18:51:41
0
메모리에서 cpu로 데이터를 복사해올때 블럭 단위로 복사해 옵니다.
그래서 연속된 메모리에 대한 엑세스가 상대적으로 더 빠르게 됩니다.
물론 코드레벨에서 명령어 캐쉬 용량 한계로 (locality)
for문이 한번에 많이 도는게 가장 유리하며 (CPU내 레지스터는 1클럭으로 받아오므로 가장 빠름/ SRAM)
그 다음으로는 IO에서 병목인 RAM에서 받아오는 영역이 클수록 느려지기에 2번이 느릴수 밖에 없습니다.
int형으로 [100][20] 이며 단순 계산으로 8k 용량을 먹는데
DDR3 기준 64bit width에 클럭빨(2배 뻥튀기)로 밀어 붇이더라도 한클럭(물론 cpu의 클럭대비 매우 느립니다)
에 8byte만 가져올수 있기에 아무래도 400(100*int) 로 열 단위로 나열된걸 가져오는게 더욱 빠르게 됩니다.