아직도 C++가 가치가 있을까?

우리는 오랜 배터리수명과 좋은 하드웨어빨을 가진 태블릿PC나 랩탑등을 일상적으로 많이들 사용하고 있습니다. 많은 경우에서 소프트웨어의 성능은 기존 하드웨어보다 보다 좋은 하드웨어에서 더 빠른 성능을 보여주는것을 알 수 있습니다. 예를들면 웹브라우저에서 돌아가는 자바스크립트 인터프린터의 경우 원래의 것보다 많게는 10배에서 20배까지 빠르다는것으 볼 수 있습니다.

 

하지만, 하드웨어들이 발전해 나가지만 모든 소프트웨어 개발자들이 그 하드웨어에 맞게 기존에 사용했던 코드들을 타이트하게 작성하고 있을까요? 당연히 아닐겁니다. 하지만 소프트웨어 개발자들이 계속해서 발전하고 있는 좋은 툴(IDE, Compiler)을 사용하고 있기때문에, 더 빠른 소프트웨어를 만들어 낼 수 있을겁니다. 예를들면, 소프트웨어 개발자가 사용하는 컴파일러들은 더 향상된 성능을 제공하기위해서 계속해서 발전합니다. 그러므로, 모든 프로그래머들은 같은 코드를 사용하지만 더 빠른 소프트웨어를 만들어 낼 수 있습니다.  고 수준의 프로그래밍 언어를 사용하는 우리의 경우, 아직까지는 컴파일러가 발전할수록 우리의 소프트웨어도 발전하고 있는것이죠. 저는 고수준의 프로그래밍언어의경우 최근 10년간 꾸준히 성능이 발전해 왔다고 믿고(생각하고) 있습니다.

 

자 간단한 사례를 한번 들어봅시다. 여러분이 계속해서 어떤 값이 누적되는 프로그램을 작성한다고 가정해 봅시다. 1,2,0,4,5 에서 시작해 1,3,3,7,12 로 계산해 나가는 거죠. 많은 C++개발자들이 아래와 같이 구현 할 것입니다.

 

for (size_t i = 1; i != data.size(); ++i) {
    data[i] += data[i - 1] ;
}

 

당연히, 자바로 짤때도 매우 유사한 코드가 나오겠죠?

 

가장 최근에 출시된 intel i7 Core를 장착한 Linux Desktop에서, 저는 Java7을 포함해 서로 다른 컴파일러를 통해 시도해 보았습니다. (-O3 flag를 붙여서요.) 그결과 이와같은 결과를 받을수 있었습니다.

 

컴파일러 

 초당 처리한 명령어 수

 Java

 1785

 GCC 4.5

 520

 GCC 4.7

 1667

 GCC 4.7 (with -funroll-loops)

 2000

 clang 3.1

 1923

 

자, JAVA가 GCC를 얼마나 따라잡았는지, 보이시나요?

 

결론 : 당신이 만약, C++의 속도 때문에 C++을 고집하고있다면, 최적화에 대한 노력이 더 필요 할것입니다.

 

출처 : http://lemire.me/blog/archives/2012/07/23/is-cc-worth-it/



BLOG main image
굉장히 많이 lost in Translation... 영어못하는 에서와 영어잘하는 테레비가 운영하는 쓸데없는 글 번역하는 팀 블로그
 Notice
 Category
분류 전체보기 (17)
번역 (16)
일반 (1)
 TAGS
LifeHacker Top 10 Screen Sharing General Availability 음성인식 Worldwide Partner Conference PDFS 윈도우즈 스토어 10.8 아이패드7인치 마운틴라이언 Politepix App Updates 로비오 화면 공유 text-to-speech 트위터 Sync Angry Birds HD 앱 업데이트 Web Search one boxes Mountain Lion 산사자 remote desktop WPC 유용한명령어 윈도우 8 google 싱크 기능 speech recongnize WPC 2012 클라우드 싱크 Windows Store Siri Release to Manufacturing OpenEars Cloud Sync repo 애플
 Calendar
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
에서의 개인 블로그
테레비의 개인 블로그
 Visitor Statistics
Total :
Today :
Yesterday :
rss