-
캐시 친화적인 코드를 찾으려 했으나 실패...분석과탐구 2021. 10. 12. 11:39
아래처럼 다차원 반복문에서 방문순서를 정하는 것 외의 다른 예제를 찾아보는데 쉽지가 않다.
//i, j 순으로 순회하느냐 j , i순으로 순회하느냐 for(int i = 0; i < size; i++) { for(int j= 0; j < size; j++) { arr[i][j] 혹은 arr[j][i] } }
컴퓨터에 캐시 라인 크기가 64바이트이길래 쓰기, 읽기를 섞으면서 구체적인 성능 차이를 도출하려고 하는데 영 결과가 시원치 않다...
그나마 찾다 보니, 상속이냐 vs 포함이냐 할 때, 상속을 하면 부모 클래스의 데이터가 하위 클래스의 데이터랑 같은 선에서 쭉 나열되고 이러한 속성을 이용해서 성능 향상을 꾀하는 게 정말 있는 거구나 정도는 찾아서 좋았지만… 이것도 또 c++이 아닌 다른 언어로 가면 어찌 될지 모르는 문제라 참...
캐시 친화적인 코드와 캐기 박살내는 코드로 글을 써보려 했으나 실패했다... 더 알아봐야겠다는 생각은 드는데 뭘 알아보지. 예전에 보니 행렬 계산할 때 좀 캐시히트를 중요하게 여겼다고 듣긴 했는데...
'분석과탐구' 카테고리의 다른 글
std::move에 대하여 (0) 2022.10.03 CRTP는 어떻게 가능할까? (0) 2021.10.13 OverlappedIO에서 소켓 버퍼 사이즈를 바꾸는 것은 대부분 성능에 영향이 없다. (1) 2021.06.05 소켓의 수신 버퍼 크기를 0으로 할 때 주의할 점. (4) 2021.05.30 switch-case optimization (0) 2021.05.23