https://www.hanbit.co.kr/store/books/look.php?p_code=B8975427001

 

C++ 최적화 : 최고 성능을 구현하는 10가지 검증된 기법

빠른 코드를 작성하는 시간은 느린 코드를 작성하는 시간보다 결코 길지 않다. 이 책은 올바른 코드를 구현하면서도 빠른 C++ 프로그램을 만드는 최적화 방법을 소개한다. 습관적으로 쓰는 C++ 구

www.hanbit.co.kr

해당 책의 난이도는 중고급 으로 분류되어 있다. (한빛 공식사이트 기준)

주요 내용

최적화에 대한 간단힌 팁들만 정리해 보았다. 

 

<문자열 최적화>

Q. 다음 두 코드 중에서 무엇이 빠를까?

 

(1번) :

   string str = "Optimized C++ book page 101";
    string str_new = "";

    for (int i = 0; i < str.size(); i++)
    {
        str_new = str_new + str[i];
    }

 

(2번) :

    string str = "Optimized C++ book page 101";
    string str_new = "";

    for (int i = 0; i < str.size(); i++)
    {
        str_new += str[i];
    }

로직은 동일하니까 같은 거 아닌가요 라고 할수 있지만 실제로는 후자가 더 빠르다.

chrono 를 통해 타이머 설정하고 측정 해 보면 

(1번): TIME: 91500 ns 
(2번): TIME: 15400 ns

 

으로 2번이 더 빠른것을 확인 할 수 있다. (실행할 때마다 실행 시간은 달라지나 2가 더 빠르다)

지금 코드에서는 미미한 차이긴 하나 더 긴 문자열을 처리하고 해당 코드가 자주 반복될수록 이 차이는 커질 것이다.

 

이렇게 차이가 나는 이유는 이렇다. 

첫 번재 코드는 str_new + str[i] 로 임시 객체를 만든 후 그것을 다시 str_new 객체에 대입한다. 이 과정에서 힙 메모리 할당과 문자열 복사가 반복적으로 일어난다.

반면 두 번째 코드는 기존 버퍼에 덧붙이므로 추가 메모리 할당이 일어나지 않는다.

후기

중고급 난이도 책은 처음 접해 보는데 역시 아직은 어려운것 같다. 

먼저 중고급 난이도 라서 C++ 기본 구현 관련 내용은 나오진 않고, 여러 파트로 나누어 최적화 방법에 대해 사례를 들어 설명한다.

 

그리고 단순 C++ 뿐 아니라 OS 나 하드웨어 관련된 내용도 나와(비중이 크진 않다) 어느정도 기초 지식이 있어야 이해하기 좋을 것 같다.물론 최적화를 위해선 결국 저런 레벨에 대한 이해가 필요할 것 같다

 

흔히 어떤 알고리즘을 사용하면 시간 복잡도가 뭐 이니이니 어떤 코드가 어떤 코드보다 빠르다 라고 생각 하는 경우가 많은데, 실제 pc로 실행 시에는 결과가 다르게 나올 수 있다는 것도 보여준다.

해당 부분에 대한 내용을 이 책에선 예제 코드와 그 코드를 개선 했을 때, 얼마의 시간이 걸리는 지에 대해서 비교하면서 확인 시켜 준다.

 

내용이 나에게는 어려워 한번만 가볍게 읽었는데 이해 하지 못한 부분이 더 많다. 그래도 유용한 부분이 많아서 파트별로 자세히 읽어보며 더 공부해 보고 싶다.

'독서 > IT, 개발' 카테고리의 다른 글

혼자 공부하는 컴퓨터구조 + 운영체제 리뷰  (1) 2025.05.30

https://hongong.hanbit.co.kr/%EC%BB%B4%ED%93%A8%ED%84%B0-%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/

 

[한빛미디어] 혼자 공부하는 컴퓨터 구조+운영체제

좋은 개발자는 컴퓨터를 분석의 대상으로 바라볼 뿐, 두려워하지 않는다!‘전공서가 너무 어려워서 쉽게 배우고 싶을 때’, ‘개발자가 되고 싶은데 뭐부터 봐야 하는지 모를 때’ ‘기술 면접

hongong.hanbit.co.kr

한빛미디어에서 주최하는 혼공학습단이라는 프로그램에 참여하게 되면서 구매한 책이다

책의 반 정도는 컴퓨터 구조에 관한 내용이고 나머지 반은 운영체제에 대한 내용이다.

 

해당 책의 난이도는 초급 으로 분류되어 있습니다 (한빛 공식사이트 기준)

 

책의 상세 내용은 혼공컴운 학습링크 참조

https://labyrinth6.tistory.com/category/%ED%98%BC%EA%B3%B5-%20%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0%2C%20%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

 

'혼공- 컴퓨터구조, 운영체제' 카테고리의 글 목록

안녕하세요 검색해도 안나오거나 자료가 부족했던 내용 혼자 정리한거 위주로 올립니다

labyrinth6.tistory.com

후기

컴퓨터 구조와 운영체제를 한 권에 같이 볼 수 있는데, 전반적으로 운영체제 파트가 더 어려운 편이였다

그림과 함께 설명해서 직관적으로 이해하기 좋은 편이다

 

파트마다 뒤에 학습문제가 있는데, 난이도는 책의 설명파트가 많이 깊게 들어가지 않는 걸 감안해도 꽤 쉬운 편이다

용어 문제 같은거도 대부분 보기중에 고르는 식이고

프로세스 스케줄링 같이 직접 적어보며 풀어야 하는 문제도 설명파트에 있는 내용이 정답도 동일하게 그대로 나온다.

 

예제 코드가 같이 제공되는 것도 좋았고 추가 학습 자료같은 거도 있어서 기본 내용 외에도 찾아보면서 학습할 수 있었다. 

참고로 예제 코드는 리눅스용이다. 윈도우 사용자들은 코드를 직접 고쳐서 해보거나 아니면 가상머신 깔아서 하면 된다

 

책 자체는 쉽게 설명된 편이고 학습 문제도 간단하게 확인만 하기 때문에 전공자들은 가볍게 복습하기 좋은 것 같다

설명이 어렵지 않고 그림이랑 같이 있어 이해하기 쉬워서 비전공자들도 읽어보기 좋을 것 같다

+ Recent posts