32 비트 시스템에서 하나의 메모리 읽기 사이클은 4 bytes
의 데이터를 가져옵니다.
아래의 버퍼를 읽으려면 아래에 나온 128 bytes
의 버퍼를 읽으려면 32 판독주기가 필요합니다. 그때 내가 그것을 빨리 읽을 수 있도록하는 방법을 알려 주시기 바랍니다 아래에 언급 한 바와 같이 현재의 버퍼를 정렬 한 경우
std :: alignas는 프로그램의 성능을 어떻게 최적화합니까?
char buffer[128];
지금, 가정?
alignas(128) char buffer[128];
메모리 읽기주기가 4 바이트로만 유지된다고 가정합니다.
오버 정렬은 C++ 표준을 통해 작동하지 않을 수 있습니다. 이 질문에 답하기 위해서는 정확한 프로세서와 컴파일러가 필요합니다. – Yakk
관련 : http://stackoverflow.com/questions/381244/purpose-of-memory-alignment – NathanOliver
당신은 확신 할 수 없습니다. * 32 비트 머신에서 하나의 메모리 읽기 사이클은 4 바이트의 데이터를 가져옵니다. *. SIMD 명령어를 참조하십시오. –