처음으로 | 찾기 | 아카이브 | 글 올리기 | 링크 | 자료실 | 통계 | 연락처 | 자유게시판
이지도움 특집
TI DaVinci
Analog Blackfin
캐쉬의 모든것
메모리 할당 알고리즘
CPU 파이프라이닝




사용자 등록

현재 접속중인 등록 사용자는 0명, 익명 사용자는 1명 입니다.
전체 등록 사용자: 751명

마지막 답장
·libcurl + fuse 조합으로 되는게 많네. (1)
·Linux Ftrace에 관해 (3)
·Android MTP ( Media Transfer Protocol ) (1)
·Lighttpd에 인증을 digest 사용시 IE 오동작 문제? (1)
·Dtrace에 관해 (1)

·OpenSSL and multi-threads (0)
·ARM 환경에서 OpenCL 사용 (0)
·IoT용 WIFI 모듈 비교 ( MCU ) 클래스 (0)
·Glances - 리눅스 여러 가지 항목을 한 화면에서 모니터링 (0)
·plugin 방식의 로그 분석기 (0)

뜨거운 감자
·나는 인터렉티브한 환경에서 역어셈블 한다. (12)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)
·ASP.NET의 데이터 그리드와 사용자 컨트롤 (7)
·DHTML Editing Control (7)

가장 많이 읽은 글
·[Cache] 2-way Set-Associative 방식이란 무엇일까? (2)
·멀티쓰레드(Pthread) 프로그래밍
·Sorting Algorithm Animation (2)
·GNU REGEX (정규표현식) 프로그래밍 강좌 (7)
·SoCRobotWar 2005 - 신입생 기초 교육자료 (7)

C++ Optimization Strategies and Techniques -Pete Isensee
글쓴이: EzDoum 글쓴날: 2002년 08월 25일 오후 01:46

# General Strategies

There's a right way and a wrong way to do optimization. Here's some strategies common to all programming endeavors that work and don't work.

Optimization Strategies that Bomb
Optimization Strategies that Work
Example of Selecting the Proper Algorithm

# C++ Design Considerations

When you start working on your next app and begin to think about coding conventions, compilers, libraries, and general C++ issues, there are many factors to consider. In this section I weigh performance issues involved with C++ design considerations.

Take advantage of STL containers
Consider using references instead of pointers
Consider two-phase construction
Limit exception handling
Avoid Runtime Type Identification
Prefer stdio to iostream
Evaluate alternative libraries

# C++ Optimizations You Can Do "As You Go"

Defy the software engineering mantra of "optimization procrastination." These techniques can be added to your code today! In general, these methods not only make your code more efficient, but increase readability and maintainability, too.

Pass class parameters by reference
Postpone variable declaration as long as possible
Prefer initialization over assignment
Use constructor initialization lists
Prefer operator= over operator alone
Use prefix operators
Use explicit constructors

# Final Optimizations

Your app is up and running. The data structures are ideal, the algorithms sublime, the code elegant, but the program - well, it's not quite living up to its potential. Time to get drastic, and with drastic measures, there are tradeoffs to consider. These optimizations are going to make your code less modular, harder to understand, and more difficult to maintain. They may cause unexpected side effects like code bloat. Your compiler may not even be able to handle some of the more advanced template-based techniques. Proceed with caution. Arm yourself with a good profiler.

Inline functions
Avoid temporary objects: the return value optimization
Be aware of the cost of virtual functions
Return objects via reference parameters
Consider per-class allocation
Consider STL container allocators
The "empty member" optimization
Template metaprogramming
Copy on write

# Compiler Optimizations

A good compiler can have a huge effect on code performance. Most PC compilers are good, but not great, at optimization. Be aware that sometimes the compiler won't perform optimizations even though it can. The compiler assigns a higher priority to producing consistent and correct code than optimizing performance. Be thankful for small favors.

C language settings
C++ language settings
The "ultimate" compiler settings
Use the novtable option for abstract classes (Microsoft Visual C++)
Indicate functions that don't throw exceptions
Use the fastcall calling convention (Microsoft Visual C++)
Warning: Unsafe optimizations

# Appendices

STL Container efficiency table
Relative costs of common programming operations
C code tuning and C++ efficiency resources

저자 홈페이지

  • 첨부 파일: CppOptimizationStrategiesandTechniques.zip CppOptimizationStrategiesandTechniques.zip (149 KiB(152,870 Bytes))

  • 관련 링크
  • [분류: C/C++ 인쇄용 페이지 본문 email로 보내기 ]

    <  The Architecture Of SQLite | Data, Bss Segment 사이즈 변화  >

    답장 쓰기
    글을 올리시려면 로그인 (사용자 등록) 하셔야 합니다.


    ·공지 (6)
    ·인터넷 (87)
    ·하드웨어 (260)
    ·C/C++ (65)
    ·어셈블리 (7)
    ·리눅스 (136)
    ·리눅스 커널 (67)
    ·윈도우즈 (25)
    ·데이터베이스 (20)
    ·보안 (16)
    ·.NET (25)
    ·그래픽 (13)
    ·책소개 (42)
    ·호기심 천국 (80)
    ·잡담 (111)
    ·사랑 (3)

    전체 본문수: 963
    전체 답장수: 525

    분류 : C/C++
    가장 많이 읽은 글
    ·Sorting Algorithm Animation (2)
    뜨거운 감자
    ·눈으로 보는 자료구조 (5)

    이지도움 어때요?
    이게 뭐야. 다시 안올란다. --;
    아이 좋아라~ +_+;
    먼가는 있는거 같은데 뭐하는 곳이지?
    기타 (자유게시판에 글로 남겨 주세요)
    [ 결과 | 투표 ]

    랜덤 링크

     Home ^ BACK TO TOP ^ EzDoum - 도움이 필요하세요~??
     Powered by KorWeblog 1.5.8 Copyleft © 2001 EzDoum, 관리자: EzDoum