메뉴 건너뛰기

프로그래밍


[TIP] 퍼포먼스를 높여주는 몇가지 코딩 예

파이팅건맨 2016.01.22 18:14 조회 수 : 591 추천:10

1. 2로 나눌때 혹은 곱할때는 ">> 1"이나 "<< 1" 을 하세요.  ">>" 연산은 나눗셈보다 클럭을 덜 잡아 먹습니다.

//나누기 2
c = a / 2; // 보다는
c = a >> 1; // 요렇게

//곱하기 2
c = c * 2; // 보다는
c = c << 1; // 요렇게


다만, 주의하실 점은 << 연산은 우선순위가 사칙연산보다 낮습니다. 즉,

c = 1 + a / 2; //의 결과와
c = 1 + a >> 1; //의 결과는 다릅니다.

// 그러므로 ">>" 혹은, "<<" 를 쓰실때에는 괄호로 싸주시는게 좋습니다.
c = 1 + (a >> 1); // good
c = 1 + (a << 1); // good


2. 홀, 짝수의 구분

보통 아래와 같이 수가 홀수인지 짝수인지 확인 하시죠?

if( a % 2 ) {  
//홀수
}
else { 
// 짝수
}


아래와 같이 확인하시면 훨씬 간단합니다.

if (a & 1) {
 //홀수
}
else {
 //짝수
}


386, 486 시절에는 무진장 눈에 띄는 속도나 퍼포먼스의 차이가 있을 수 있었습니다. 사칙연산이 먹는 클럭수가 비트연산 수 보다 많으면 수십배 이상 이었으니까요.

(특히, 임베디드 쪽은 엄청났겠지요) 하지만, 요즘은 컴파일러가 워낙 똑똑해서 이를 위한 최적화를 대부분 해준다고 알고 있습니다. 어쩌면 코드의 가독성만 떨어뜨리는 일이 될 수도 있겠지요. 이에, 실 사용에 대해서는 상황에 따른 독자의 판단에 맡길 수 밖에 없겠네요^^;




번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [48] 파이팅건맨 2016.02.20 108619
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 15769
공지 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 14700
145 [TIP] The function size must be used with a prefix when a default namespace is not specified 오류 해결하기 파이팅건맨 2017.08.02 2240
144 [TIP] 페이스북 개인 담벼락의 좋아요수 크롤링하기 파이팅건맨 2017.07.15 1291
143 [TIP] 자바스크립트와 PHP코드간에 암호화 통신하기 (Encrypt with Javascript, Decrypt with PHP) [2] 파이팅건맨 2017.03.16 3649
142 [TIP] GUNMAN의 영화 점수 테이블을 이용한 딥러닝 예제 파이팅건맨 2017.02.15 876
141 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 15769
140 [TIP] 네이버 영화 정보와 전문가 평점 얻어오기 파이팅건맨 2017.02.10 6159
139 [TIP] 네이버 오픈 API를 로컬 PC에서 호출하기 파이팅건맨 2017.02.01 2846
138 [TIP] php로 기상청에서 제공하는 기상정보 API 호출하기 파이팅건맨 2017.01.17 8367
137 [TIP] node 에서 Basic authentication 인증과 함께 http, https 요청하기 파이팅건맨 2016.09.01 1023
136 [TIP] node의 lambda-local 테스트 팁 파이팅건맨 2016.08.19 700
135 [TIP] 데이터를 Node에서 암호화하고 PHP에서 복호화 하기 파이팅건맨 2016.08.19 742
134 [TIP] Docker상의 Syntaxnet 결과 포맷을 수정하기 파이팅건맨 2016.08.07 1867
133 [TIP] SyntaxNet을 Windows에서 실행하기 [1] 파이팅건맨 2016.05.25 891
132 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 14700
131 [TIP] 파이선으로 TED에서 가장많이 사용된 단어들 줄세우기 파이팅건맨 2016.04.03 1692
130 [TIP] 파이선에서 구글 스프레드시트 사용하기 [5] 파이팅건맨 2016.03.27 4765
129 [TIP] 파이선에서 리스트를 사용하는 재미있는 예제 파이팅건맨 2016.03.15 884
128 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [48] 파이팅건맨 2016.02.20 108619
» [TIP] 퍼포먼스를 높여주는 몇가지 코딩 예 파이팅건맨 2016.01.22 591
126 [TIP] JQuery와 PHP로 이미지 파일을 업로드 하는 간단한 소스 (How to upload image file on PHP server by using JQuery) 파이팅건맨 2015.04.03 11709
위로