알고리즘 최적화 기법

 1603, 1/81 회원가입  로그인  
   han0161
   알고리즘 최적화 기법

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=740 [복사]


소스코드 최적화 기법
첫째 최적화를 위한 방법의 첫째는 알고리즘을 선택하라는 것이다.
10,000의 정수배열이 있는데 이것을 퀵정렬과 거품정렬을 사용할시 차이는 엄청나다.
둘째 함수를 적절히 사용하라
함수를 사용하는 것은 사용하지 않는 것보다 분명히 속도면에서 불리하다.왜냐하면 같은 역할을 하더라도 함수를 사용하면 호출을 위한 사전절차가 더 포함되기 때문이다. 이를 오버헤드 현상이라고 한다 반면에 함수 호출의 장점이라면 컴파일 결과 만들어지는 실행 파일의 크기가 작아진다는 것이다. 그래서 속도와 크기와의 연관성을 잘 생각해서 함수를 사용해야 한다.
셋째 되도록 실수형 은 사용하지 마라
수치계산용 보조프로세서가 없는 경우에는 실수형의 연산은 너무도 더딘 속도이기 때문이다.(현재 하드웨어 발달상태를 봤을 때 이건 별 의미가 없을 것 같네요 ^^;;이 책이 좀 오래된 책이라서요-.-;;)
넷째 반복문 내를 최대한 간단히 하라
반복문은 for문,do… while문,while문 등이 있는데 이 내부에는 최대한 빠른 속도를 내도록 노력하라. 반복문이 만일 수천, 수만번 수행이 된다면 아주 작은 개선도 결과적으로 엄청난 시간 단축을 가져온다.
반복문 내를 간단히 하려면 함수호출을 줄이고 필요한 계산은 반복문 밖에서 다해놓는다.
다섯째 재귀호출 형태를 사용하지 마라.
재귀호출은 실행 속도면에서 바람직하지 못하다.이는 재귀호출 자체가 바로 함수의 호출이기 때문이다. 또 재귀호출은 시스템 내부의 스택을 사용함으로써 스택 넘침(Stack overflow)으로 인한 에러를 유발할 수 있어 위험하다.
또 명심해야할 것은  이 최적화의 단계는 항상 프로그램 작성시 최후의 단계여야 한다는 것
즉, 일단은 효율성보다는 읽기 쉬운 단순한 알고리즘을 사용하여 프로그램이 돌아가도록 해야 한다. 그러고 난 연후에야 최적화에 대해 고려해야 한다.
-출처:C로 배우는 알고리즘 중-

  Hit : 8932     Date : 2007/06/02 10:18



    
요렇게하몬 이책 안 읽어봐도 ... 걱정되네...ㅋ.ㅋ 2007/07/06
     [공지] 강좌를 올리실 때는 말머리를 달아주세요^ㅡ^ [29] 멍멍 02/27 19875
1602   해커스쿨 만화의 자동으로 스캔하는 프로그램     해킹잘하고싶다
02/18 317
1601   시스템 콜 추적 확장판[2]     해킹잘하고싶다
01/19 493
1600   간단한 시스템 콜 추적 프로그램 만들기     해킹잘하고싶다
01/18 490
1599   [overthewire.org] - leviathan1     해킹잘하고싶다
01/14 790
1598   [overthewire.org] - leviathan0     해킹잘하고싶다
01/14 526
1597   [Write Up] Crypto Cat's CTF 2024 - BabyFlow     해킹잘하고싶다
12/29 545
1596   [pwnable.kr] bof     해킹잘하고싶다
12/25 531
1595   [pwnable.kr] Shellshock[1]     해킹잘하고싶다
11/23 642
1594   Shellshock의 기본 요약     해킹잘하고싶다
11/23 622
1593   [pwnable.kr] fd     해킹잘하고싶다
11/23 626
1592   VPN이 연결되었다가 도중에 꺼도 웹 브라우저상에서 유지되는 이유     해킹잘하고싶다
11/22 581
1591   해커들이 해킹시 사용하는 디렉토리 공간[1]     해킹잘하고싶다
11/22 663
1590   Keyboard Hooking -part2 - (Python3 ver)     해킹잘하고싶다
11/20 614
1589   [Windows API] Keyboard Hooking     해킹잘하고싶다
11/20 435
1588   [pwnable.kr] cmd1 공략     해킹잘하고싶다
10/23 592
1587   netdiscover 파이썬으로 구현하기     해킹잘하고싶다
08/13 825
1586   파이썬을 이용한 심플 웹 크롤러     해킹잘하고싶다
08/13 696
1585   파이썬 random모듈을 이용한 숫자맞추기 게임 구현     해킹잘하고싶다
05/30 1271
1584   파이썬 채팅 프로그램 구현     해킹잘하고싶다
05/28 1199
1 [2][3][4][5][6][7][8][9][10]..[81]

Copyright 1999-2025 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org