분석과탐구
캐시 친화적인 코드를 찾으려 했으나 실패...
씨알메리
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++이 아닌 다른 언어로 가면 어찌 될지 모르는 문제라 참...
캐시 친화적인 코드와 캐기 박살내는 코드로 글을 써보려 했으나 실패했다... 더 알아봐야겠다는 생각은 드는데 뭘 알아보지. 예전에 보니 행렬 계산할 때 좀 캐시히트를 중요하게 여겼다고 듣긴 했는데...