프로그램의 최적화 과연 어디까지 해야할까?
AoA 146쪽부터 나오는 내용에 난 조금 혼란이 왔다.
제목은 'HLA Support for Data Alignment'이다.
대충 내용을 보면 크기에 따라 분류 선언을 해야지,
계산 과정을 줄일 수 있다고 한다.
이건 분명 맞는 말이다.
이 내용은 앞의 'The Memory Subsystem'에 있던 내용이다.
하지만 책에서도 언급했듯이
읽기에도 불편하고 프로그래머를 복잡하게 할 뿐이다.
그래서 HLA는 'align( integer_constant );'이라는
함수를 제공한다고 한다.
여기서 궁금한 것은 '왜 컴파일러는 이런 과정을
효율적으로 하지 못하고 프로그래머에게 넘기는 걸까?'이다.
또한, C 컴파일러부터 시작해서 다른 컴파일러들도
마찬가지일까? 하는 의문이 들었다.
PC 프로그램을 만든다면야
이런 문제는 거의 없다고 봐지겠지만,
어셈이 필요한 곳(현재 있을까 의문이지만,)에서
이 내용이 과연 중요한가 하는 것이다.
아직 잘 모르겠다.
권고사항이니 그냥 웃고 넘겨야겠다.
참조
Art of Assembly
AoA 146쪽부터 나오는 내용에 난 조금 혼란이 왔다.
제목은 'HLA Support for Data Alignment'이다.
대충 내용을 보면 크기에 따라 분류 선언을 해야지,
계산 과정을 줄일 수 있다고 한다.
이건 분명 맞는 말이다.
이 내용은 앞의 'The Memory Subsystem'에 있던 내용이다.
하지만 책에서도 언급했듯이
읽기에도 불편하고 프로그래머를 복잡하게 할 뿐이다.
그래서 HLA는 'align( integer_constant );'이라는
함수를 제공한다고 한다.
여기서 궁금한 것은 '왜 컴파일러는 이런 과정을
효율적으로 하지 못하고 프로그래머에게 넘기는 걸까?'이다.
또한, C 컴파일러부터 시작해서 다른 컴파일러들도
마찬가지일까? 하는 의문이 들었다.
PC 프로그램을 만든다면야
이런 문제는 거의 없다고 봐지겠지만,
어셈이 필요한 곳(현재 있을까 의문이지만,)에서
이 내용이 과연 중요한가 하는 것이다.
아직 잘 모르겠다.
권고사항이니 그냥 웃고 넘겨야겠다.
참조
Art of Assembly
"in ASM" 카테고리의 다른 글
- Understanding CPU Caching and Performance 01/04 (0)2006/03/30
- Cache Architecture (0)2006/03/04
- 어셈은 뭐라고 할까나~ (4)2006/01/03
- 과연 이것을 꼭 해야 할까? (4)2005/12/20
- Hello World~ (1)2005/12/04
- MASM과 HLA (1)2005/12/02
- 왜 안되는 거지? (7)2005/11/27
글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.







댓글을 달아 주세요
해야 하는 것이였다. 물론 그 이유는 알았지만, 다른 언어에서는 그에 대한 얘기가 거의 없었다.
하지만 'C 언어 펀더멘탈'에서 언급해주었다.
C언어에서는 임플리멘테이션이 알아서 해야 할 일이라고 한다.
이래서 어셈이 C보다 귀찮구만.^^;;
C 언어 펀더멘탈을 더 읽어보니 반드시 알아야 할 내용이였다.
컴파일러가 자동으로 맞춰주지만, 문제는 포인터 변환에 있었다.
그 외에 Struct에서도 문제가 발생하였다.
배수 맞추는거 생각외로 신경써야 하는 부분이다.
정말 신기한 글이다.
처음에는 의문을 점점 답을 찾아가는 글이기 때문이다.