아직도 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
speech recongnize 앱 업데이트 산사자 remote desktop Web Search 유용한명령어 Screen Sharing WPC 2012 Release to Manufacturing 기능 General Availability 아이패드7인치 화면 공유 google App Updates Sync 애플 PDFS 클라우드 싱크 OpenEars 윈도우 8 Politepix Angry Birds HD LifeHacker Top 10 10.8 싱크 윈도우즈 스토어 Cloud Sync WPC Windows Store one boxes Worldwide Partner Conference 트위터 음성인식 마운틴라이언 Siri repo Mountain Lion text-to-speech 로비오
 Calendar
«   2025/04   »
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
 Recent Entries
 Recent Comments
 Recent Trackbacks
 Archive
 Link Site
에서의 개인 블로그
테레비의 개인 블로그
 Visitor Statistics
Total :
Today :
Yesterday :
rss