과연 이것을 꼭 해야 할까?

By | 2005/12/20

프로그램의 최적화 과연 어디까지 해야할까?


AoA 146쪽부터 나오는 내용에 난 조금 혼란이 왔다.

제목은 ‘HLA Support for Data Alignment’이다.

대충 내용을 보면 크기에 따라 분류 선언을 해야지,

계산 과정을 줄일 수 있다고 한다.

이건 분명 맞는 말이다.

이 내용은 앞의 ‘The Memory Subsystem’에 있던 내용이다.

하지만 책에서도 언급했듯이

읽기에도 불편하고 프로그래머를 복잡하게 할 뿐이다.

그래서 HLA는 ‘align( integer_constant );’이라는

함수를 제공한다고 한다.

여기서 궁금한 것은 ‘왜 컴파일러는 이런 과정을

효율적으로 하지 못하고 프로그래머에게 넘기는 걸까?’이다.

또한, C 컴파일러부터 시작해서 다른 컴파일러들도

마찬가지일까? 하는 의문이 들었다.

PC 프로그램을 만든다면야

이런 문제는 거의 없다고 봐지겠지만,

어셈이 필요한 곳(현재 있을까 의문이지만,)에서

이 내용이 과연 중요한가 하는 것이다.

아직 잘 모르겠다.

권고사항이니 그냥 웃고 넘겨야겠다.

참조

Art of Assembly

4 thoughts on “과연 이것을 꼭 해야 할까?

  1. NoSyu

    해야 하는 것이였다. 물론 그 이유는 알았지만, 다른 언어에서는 그에 대한 얘기가 거의 없었다.
    하지만 ‘C 언어 펀더멘탈’에서 언급해주었다.
    C언어에서는 임플리멘테이션이 알아서 해야 할 일이라고 한다.
    이래서 어셈이 C보다 귀찮구만.^^;;

    Reply
  2. NoSyu

    C 언어 펀더멘탈을 더 읽어보니 반드시 알아야 할 내용이였다.
    컴파일러가 자동으로 맞춰주지만, 문제는 포인터 변환에 있었다.

    Reply
  3. NoSyu

    그 외에 Struct에서도 문제가 발생하였다.
    배수 맞추는거 생각외로 신경써야 하는 부분이다.

    Reply
  4. NoSyu

    정말 신기한 글이다.
    처음에는 의문을 점점 답을 찾아가는 글이기 때문이다.

    Reply

Leave a Reply