루프상에서의 구조체
컴퓨터는 반복문을 돌리는 게 제법 일이라. 어지간한건 돌릴 때 한번에 돌리는 게 좋다고 알고 있었다.
이게 모든 CPU에 해당하는 이야기는 아니지만, 그렇다고 반복문에 특화된 마이크로 프로세서나 컨트롤러가 있다는 소리도 못 들어봤으니 기본은 유효하다고 생각했다.
그런데 서로 다른 구조체를 한번에 돌리는 건, 반대로 효율이 나쁘다는 걸 이번에 알게 됐다. (일단 인텔이다)
어제오늘 통신도 안 되고 해서 오랜만에 최적화 작업하며 테스트 해보는데, 수상하게 잡히지 않는 컨텍스트 스위칭이 있는 거다.
반복문을 돌려 하나의 구조체에서 계산된 값을 각자 수납하는 작업인데. 기본적으로 같은 구조체라, 2개의 구조체를 습관대로 한번에 처리하는 함수가 하나 있었다. 혹시나 하는 마음에 얘를 수정해 봤다.
각각 함수로 분리해 돌려보니... 빅 데이터에서 수만 단위의 컨텍스트 스위칭이 잡혔고 속도도 빨라졌다.
무식하고 용감했구나.... 라는 생각이다.