2013-03-19 2 views
0

내가 왜이 질문을하는지 당신에게 이야기하면 그 질문이 더 쉽습니다. 나는 올바른 질문을하지 않습니다. 함수를 인라인 할 때 코드가 너무 커서 TLB 미스가 발생할 수 있습니다. 나는 또한 당신이 L1 데이터가 아니라 결국 L1 코드 캐쉬가 잘못 될 것이라고 생각한다.C++ 컴파일 후 생성 된 명령어의 크기를 봅니까?

컴파일 된 어셈블리/기계 코드의 크기를 컴파일 후 결정할 수있는 방법은 무엇입니까? 그것을 측정 할 수 있습니까?

+0

예,'size' 또는 유사한 명령을 사용하여 코드의 전체 크기를 쉽게 측정 할 수 있습니다. –

답변

1

대부분의 컴파일러는 올바른 주문 (예 : VC++의 경우 -Fa, 대부분의 경우 -F)으로 어셈블리 언어 출력을 생성합니다.

VC++은 맵 파일을 생성 할 수도 있습니다. 맵 파일은 링커가 생성 한 것보다 정렬하기가 더 쉽기 때문에 링크 타임 최적화와 같은 것들이 포함되어 있으며 심볼의 주소를 알려줍니다. 심볼이 실행 파일에 어떻게 배열되어 있느냐에 따라 연속되는 주소의 차이는 각각의 (패딩 이후의) 크기가됩니다.

+0

이클립스 C++ IDE가 동일한 기능을 수행하는지 알고 있습니까? – user997112

+0

Eclipse에서 사용하는 컴파일러에 따라 달라집니다. –

관련 문제