1. 시작만 aligned 에 맞추면 쭉 aligned 로 처리되면 더할나위 없음 짱 해피.

aligned 가 젤 빠름.


2. src-dst 구조에서는 한쪽을 aligned 에 맞춰도 다른쪽이 unaligned 일 수 있음

즉 불합리한 합성 구조가 필연적임


3. 그걸 하드웨어에서 가속해주면 모두 모두 해피임.


4. 근데 C++로 aligned 를 직접 구현하면 컴파일러가 나몰라라함.


5. 그래서 unaligned 로 작성하면 오홍~ 하고 하드웨어에 잘 물려줌.


( 물론 이렇게 해 주는 플랫폼의 경우지. 그게 우리가 주로 사용하는 x86, x64 인거고 )


즉,


우리가 하려던건 결국 unaligned 주소의 src, dst 에 대한 memcpy 야.

그걸 하드웨어가 잘 해주면 결과는 본질적으로 똑같아. 캐시 플로우 정도의 차이가 있을 뿐이야.


근데,


C++ 에서 unaligned access 가 최적화를 위한 선택이란 것에 대해 그렇지 않다! 라고 주장하는 넘은

intel architecture 를 잘 모르는 넘이지.


나중에 컴파일러가 똘똘해져서, bit-shift 도배해놔도 unaligned 로 간단히 표현한 만큼 

최적화를 알아서 잘해주는 시대가 올지 모름.

적어도 아직까진 그건 현실이 아님.


실험이 나오고 반증이 끝났는데도 결과에 승복안하네 ㅋㄷ

저런 꼴통은 처음이다. 지가 짠 코드 1MB 돌린 결과도 이야기 안해 ㅋㅋ