간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (15,220원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (11,220원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (12,820원)
(최대할인 4만원 / 2만원 이상 결제)
Close

임베디드 프로그래밍 C 코드 최적화

소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 396
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
  • 저 : 김유진
  • 출판사 : 한빛미디어
  • 발행 : 2008년 02월 29일
  • 쪽수 : 276
  • 제품구성 : 전1권
  • ISBN : 9788979145465
정가

17,800원

  • 16,020 (10%할인)

    890P (5%적립)

  • 구매

    10,700 (40%할인)

    530P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 출고완료 후 14일 이내 마이페이지에서 적립받기한 경우만 적립됩니다.
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(2)

  • 사은품(4)

책소개

최적화는 프로세서, 컴파일러, 사용할 수 있는 시스템 자원과 같은 여러 가지 요소를 고려해야 한다는 점에서 종합 예술과 같다. 최적화엔 절대적인 규칙이 없다. A 프로세서에서 통하는 최적화 기법이 B 프로세서에서는 시스템을 느리게 만든다. 프로그램의 코드 크기를 줄이면 데이터 크기가 늘어나고, 데이터 크기를 줄이면 코드가 늘어나는 것을 보면 최적화는 한쪽을 누르면 다른 쪽이 터지는 풍선과 같다. 이 책은 한정된 자원만 이용할 수 있는 임베디드 시스템에서 이룰 수 있는 최적화 방법을 제시하고, 프로그램의 동작 원리까지 상세하게 해설한다.

출판사 서평

주요내용
비트 연산 활용
컴파일러 최적화와 코드 최적화
포인터 활용을 통한 최적화
임베디드 환경을 위한 변수 선택법
자료구조 다이어트 기법
루프 최적화 기법과 최적화를 부르는 표현
컴파일러 최적화와 ARM 환경의 최적화

이 책의 특징과 장점
- 처음 임베디드 시스템을 접하면서 겪는 문제와 의문점을 해설하면서 임베디드 시스템의 특징을 자세히 설명한다.
- 최적화에 필요한 포인터, 어셈블리, 링커와 로더, 프로그램 실행 과정을 상세하게 분석한다.

목차

1장 김 대리, 플랫폼 개발팀으로 발령 나다.
1.1. 의문1. 임베디드 시스템이란?
1.2. 의문2. 임베디드 시스템의 구현
1.3. 의문3. 임베디드 소프트웨어 개발방법
1.4. 의문4. 프로그램을 어떻게 타겟 시스템으로 옮기나
1.5. 의문5. 임베디드 소프트웨어의 실행
1.6. 정리

2장 김 대리, 하드웨어 제어에 눈뜨다.
2.1. 의문1. 하드웨어에 어떻게 접근하나
2.2. 의문2. 하드웨어 어떻게 제어하나
2.3. 의문3. 특정 비트를 어떻게 제어하나
2.4. 정리

3장. 김 대리, 드디어 LED를 깜박이다.
3.1. 과제 1. 포인터 없이 메모리에 접근하기
3.2. 과제 2. 코드 줄이기
3.3. 정리

4장 컴파일러 최적화, 너무 믿지 마세요.
4.1. 외부 요인에 의해 변하는 메모리를 위한 volatile
4.2. 정리

5장 main()은 누가 호출하나
5.1. 운영체제가 있는 경우의 main() 호출과정
5.2. 운영체제가 없는 경우의 main() 호출과정
5.3. 정리

6장 포인터에 대한 오해와 진실
6.1. 오해1. 메모리에 접근하려면 포인터가 필요하다?
6.2. 오해2. 포인터와 포인터 연산은 +, -연산만 가능하다?
6.3. 오해3. 배열의 이름은 포인터이다?
6.4. 오해4. a[]배열의 a와 &a는 같은 의미이다?
6.5. 정리

7장 김 대리의 포인터 울렁증 극복기
7.1. 문자열 포인터
7.2. void 포인터
7.3. 함수 포인터
7.4. 정리

8장 최적화 꼭 해야 하나요?
8.1. 코드 최적화
8.2. 정리

9장 최적화의 첫 단계, 컴파일을 잘 이해하라
9.1. 컴파일(compile) 과정
9.2. 오브젝트 파일(object file)
9.3. 링킹(linking)
9.4. 재배치(relocation)
9.5. 로딩
9.6. 정리

10장 포인터의 활용 및 최적화
10.1. 포인터는 부피가 큰 데이터를 이동시키는 효과적인 방법이다.
10.2. 포인터 이럴 땐 선택이 아니라 필수
10.3. 힙 영역에 접근하는 방법제공
10.4. 포인터를 빠르게 하는 방법 : 포인터 체인을 제거하라.
10.5. 정리

11장 C는 메모리를 어떻게 사용하는가
11.1. C의 메모리
11.2. static
11.3. extern
11.4. auto
11.5. register
11.6. 정리

12장 변수를 잘 사용하는 건 최적화의 기본
12.1. 적절한 데이터 타입을 선택하라
12.2. 전역 변수 최적화
12.3. 지역 변수 최적화
12.4. 정적 지역 변수의 최적화
12.5. 타입 한정자
12.6. const
12.7. 정리

13장 집합원소 저장의 효율적 방법
13.1. 배열 액세스, 어느 방법이 좋은가?
13.2. 배열 인덱스의 활용
13.3. 구조체의 패딩 비트를 줄여라
13.4. 유니온의 활용
13.5. 정리

14장 메모리는 돈이다
14.1. ROM 최적화
14.2. RAM 최적화
14.3. 정리

15장 함수, 생각 없이 쓰면 낭패 본다
15.1. 매크로 함수
15.2. 인라인
15.3. 재귀 함수의 최적화
15.4. 함수 분기에서 돌아오기 까지
15.5. 함수에서 인자를 잘 활용하는 팁
15.6. 리프 함수(Leaf function)의 활용
15.7. 정리

16장 if가 좋을까 switch가 좋을까?
16.1. 분기문 최적화
16.2. 정리

17장 돌리는 것도 요령껏
17.1. 좀 덜 돌면 안되겠니? => 루프 풀기(Loop Unrolling)
17.2. 가까운 루프는 합쳐라! =>루프 병합(Loop Fusion)
17.3. 루프와 상관없는 계산을 루프 밖으로 쫓아내라
17.4. 필요 없이 루프를 끝까지 돌리지 마라
17.5. 루프 변수
17.6. 루프를 빠르게 하는 표현
17.7. 함수 루프
17.8. 정리

18장 최적화를 부르는 표현
18.1. 비용이 낮은 연산자를 선택하라
18.2. short circuit 원리의 활용
18.3. 연관된 표현은 묶어서 처리하라
18.4. 고민되는 실수 연산의 표현(floating point arithmetic)
18.5. 비트 플래그의 토글링(toggling)
18.6. 유니온의 활용
18.7. 조건부 실행
18.8. 정리

19장 컴파일러를 사용한 최적화(GNU C Compiler)
19.1. 어셈블리 코드를 보자
19.2. 상수 대체(Constant Folding)
19.3. 중복표현 제거
19.4. 연산 강도 경감(Strength Reduction)
19.5. 정리

20장 ARM에서의 최적화
20.1. APCS
20.2. 루프 최적화
20.3. ARM 레지스터 활용 팁
20.4. 지역 변수 타입
20.5. 함수 최적화
20.6. 연산 최적화
20.7. 정리

본문중에서

김 대리: 과장님, x86용으로 개발된 코덱을 임베디드 시스템에 포팅했는데 성능이 많이 떨어집니다.
박 과장: 성능이 떨어진다는 게 무슨 의미인가?
김 대리: 음악 파일을 재생하면 음악이 끊기기도 하고, 다음 곡으로 넘어갈 때 지연이 심합니다.
박 과장: 어디 코덱 코드 좀 보세. (한참을 코드를 보시더니) 손볼 곳이 많군. 코드가 엉망이야. x86 환경은 리소스가 풍부하기 때문에 어떻게 돌아갔는지 모르지만, 임베디드 시스템의 경우에는 이렇게 코딩해서는 힘들지. 자네가 고생 좀 해야겠어. 코드를 적합하게 수정해야겠네.
김 대리: 어디를 어떻게 수정하라는 건가요?
박 과장: 코드 최적화 말일세.
김 대리: 코드 최적화요?
박 과장: 우선 프로그램이 전체적으로 크게 잘못된 곳은 없는 것 같네. 다만, 코드가 임베디드 환경에 적합하지 않다는 것이 문제일세. x86 환경은 프로세서의 성능도 좋고, 메모리도 풍부해서 로직이 잘못되지만 않았다면 작동에는 별문제가 없지. 하지만, 임베디드 환경에서는 코드 한 라인을 짜더라도, 어떻게 하면 짧게 표현할 수 있고 메모리를 덜 사용할 수 있을지를 고민해야 한다네. 지금 이 코덱의 문제는 이러한 고민을 하지 않고 코드를 만들었으니 시스템이 힘들어하는 것이지.

저자소개

생년월일 -
출생지 -
출간도서 0종
판매수 0권

프로그래밍의 다양한 관련 기술을 섭렵한 후 삼성멀티캠퍼스, 비트교육센터, HP 교육센터 등의 기업과 여러 대학에서 자바와 안드로이드 관련 강의를 진행하였다.
현재는 한국정보기술원에서 자바를 비롯하여 안드로이드 프로젝트 투입을 위해 교육이 필요한 개발자나 모바일 어플리케이션을 개발하고 싶은 개발자 및 학생을 위한 다양한 교육을 진행하고 있다.

저서
●임베디드 프로그래밍 C 코드 최적화 - 한빛미디어
●이게 진짜 자바 프로그래밍이다 - 영진미디어
●이게 진짜 C 프로그래밍이다 - 영진미디어
●이게 진짜 C++프로그래밍이다 - 영진미디어
●안드로이드

펼쳐보기

언론사 추천 및 수상내역

리뷰

9.7 (총 0건)

구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

리뷰쓰기

기대평

작성시 유의사항

평점
0/200자
등록하기

기대평

10.0

교환/환불

교환/환불 방법

‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

교환/환불 가능 기간

고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

교환/환불 비용

고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

교환/환불 불가사유

반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

소비자 피해보상

소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

기타

도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

배송안내

  • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

  • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

  • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

  • 배송비

도서(중고도서 포함) 구매

2,000원 (1만원이상 구매 시 무료배송)

음반/DVD/잡지/만화 구매

2,000원 (2만원이상 구매 시 무료배송)

도서와 음반/DVD/잡지/만화/
중고직배송상품을 함께 구매

2,000원 (1만원이상 구매 시 무료배송)

업체직접배송상품 구매

업체별 상이한 배송비 적용