변수의 const 사용으로 성능을 향상 시킬수있을까?


link : http://stackoverflow.com/questions/3435026/can-const-correctness-improve-performance



const correctness can't improve performance because const_cast and mutable are in the language, and allow code to conformingly break the rules. This gets even worse in C++11, where your const data may e.g. be a pointer to a std::atomic, meaning the compiler has to respect changes made by other threads.

That said, it is trivial for the compiler to look at the code it generates and determine if it actually writes to a given variable, and apply optimizations accordingly.

That all said, const correctness is a good thing with respect to maintainability. Otherwise, clients of your class could break that class's internal members. For instance, consider the standard std::string::c_str() -- if it couldn't return a const value, you'd be able to screw around with the internal buffer of the string!

Don't use const for performance reasons. Use it for maintainability reasons.


google 번역

const 정확성은 const_cast 및 mutable이 언어에 있기 때문에 성능을 향상시킬 수 없으며 코드가 규칙을 준수하여 규칙을 위반하지 않도록합니다. 이것은 C ++ 11에서 더욱 악화됩니다. const 데이터는 예를 들어. std :: atomic에 대한 포인터가됩니다. 즉, 컴파일러는 다른 스레드가 변경 한 내용을 존중해야합니다.


즉, 컴파일러가 생성하는 코드를보고 실제로 주어진 변수에 쓰는지 여부를 판별하고 이에 따라 최적화를 적용하는 것은 간단합니다.


즉, const 정확성은 유지 보수성 측면에서 좋은 점입니다. 그렇지 않으면 클래스의 클라이언트가 해당 클래스의 내부 구성원을 손상시킬 수 있습니다. 예를 들어, 표준 std :: string :: c_str ()을 고려해보십시오. const 값을 반환 할 수없는 경우 문자열의 내부 버퍼를 사용할 수 있습니다.


성능상의 이유로 const를 사용하지 마십시오. 유지 보수상의 이유로 사용하십시오.



'프로그래밍' 카테고리의 다른 글

c++11 타입추론 auto, decltype  (0) 2015.10.28
PostQuitMessage DestroyWindow 차이  (0) 2015.10.15
ubuntu 시스템 언어 변경  (0) 2015.08.26
git 소개  (0) 2015.08.21
Visual Assist X 소개  (0) 2015.08.21









복사 생성자로 타입추론

auto iterStart = vectorData.begin();

변수나 객체로 타입 추론

decltype(iterStart) iterEnd;

iterEnd = vectorData.end();





'프로그래밍' 카테고리의 다른 글

C++ const 성능 향상  (0) 2017.03.21
PostQuitMessage DestroyWindow 차이  (0) 2015.10.15
ubuntu 시스템 언어 변경  (0) 2015.08.26
git 소개  (0) 2015.08.21
Visual Assist X 소개  (0) 2015.08.21


http://bamboogrove.tistory.com/39

http://rockdrumy.tistory.com/900

http://www.kkangtong.net/118

http://ssb777.blogspot.kr/2009/07/mfc-wmclose-wmdestroy-wmquit.html

'프로그래밍' 카테고리의 다른 글

C++ const 성능 향상  (0) 2017.03.21
c++11 타입추론 auto, decltype  (0) 2015.10.28
ubuntu 시스템 언어 변경  (0) 2015.08.26
git 소개  (0) 2015.08.21
Visual Assist X 소개  (0) 2015.08.21


참조 : http://kjvvv.kr/37730


언어페키지 설치

# sudo apt-get install language-pack-ko



기본 locale에 한글설정으로 변경

# sudo vi /etc/default/locale

LANG=ko_KR.EUC-KR
LANG=ko_KR.UTF-8

둘중 하나 작성후
:wq 저장후 종료




'프로그래밍' 카테고리의 다른 글

c++11 타입추론 auto, decltype  (0) 2015.10.28
PostQuitMessage DestroyWindow 차이  (0) 2015.10.15
git 소개  (0) 2015.08.21
Visual Assist X 소개  (0) 2015.08.21
pyhton os.path  (0) 2014.12.23

git 소개

프로그래밍 2015. 8. 21. 09:31


'프로그래밍' 카테고리의 다른 글

PostQuitMessage DestroyWindow 차이  (0) 2015.10.15
ubuntu 시스템 언어 변경  (0) 2015.08.26
Visual Assist X 소개  (0) 2015.08.21
pyhton os.path  (0) 2014.12.23
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거  (0) 2014.11.05


'프로그래밍' 카테고리의 다른 글

ubuntu 시스템 언어 변경  (0) 2015.08.26
git 소개  (0) 2015.08.21
pyhton os.path  (0) 2014.12.23
vs 에서 AlwaysCreate 설정으로 항상빌드하는 현상 제거  (0) 2014.11.05
std::bind 사용법  (0) 2014.10.23


vs 컴파일러 문제로

자신이 사용하는 vs버전을 사용하게 환경번수를 바꿔줘야한다


Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%
Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%
Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS% 

VS90COMNTOOLS 변수를 사용하는 다른곳에서

오작동하지 않게 해당 모듈 설치후

VS90COMNTOOLS 변수를 일시 적으로 사용하거나 복구해준다.

'프로그래밍 > Python' 카테고리의 다른 글

타인의 django 후기들  (0) 2015.11.17
python 2 3 호환 코드 짜기  (0) 2015.11.12
python 문자열 unicode encode() decode()  (0) 2015.05.07
[Python] XML <=> Dict <=> JSON  (0) 2014.05.22
python 리스트 내장 과 발생자  (0) 2013.12.17