GCC 와 타 컴파일러의 비교

kenny007one의 이미지

GCC가 최고라 생각하시는분이 여기 많으실줄 압니다.

하지만, 사실은 완전히 다릅니다.

GCC가 유용한 분야는 사실 크로스 컴파일러로써 쓰일때 뿐이고

대부분 윈도우 플랫폼 컴파일러와 상용 유닉스 컴파일러보다 컴파일 속도 자체도 엄청 느리고..

Linux빼고는 그다지 효율적인 바이너리를 생성해내지도 못합니다.

제가 똑같은 C++코드로 약 만라인짜리 코드를 VC++과 C++코드의 컴파일 속도를 비교해보자면 약 3배의 시간차가 났습니다.

그리고 플랫폼의 차이라고 치자면 같은 Linux에서 인텔의 컴파일러도 GCC보다 훨씬 빠르고 객관적으로 30% 가까운 성능향상을 수치계산에서는 보인다고 나와있습니다.

이렇듯 제가 특별히 시간차가 나는 코드를 비교한게 아니라 구글에서 검색해보셔도 그럴겁니다.

이게 만약 실제 회사에서 개발스케쥴로 보자면 모든 개발시간이 3배가 아니라 3의 제곱으로 시간이 더 들어가니 개발비용은 정말 엄청난 차이인것입니다.

개인이 취미로는 상관없지만 회사에서 이래도 GCC를 사용해야 될까요? 엄청난 낭비일것입니다.

댓글

jongwooh의 이미지

CN wrote:

아 RTL이 아이테니엄에 취약한가요? 처음 들었습니다. 그런 문제점도 있군요.

RTL은 레지스터 디펜던시 및 분기 그래프가 싱글 노드로부터 출발해서 몇개의 브랜치만 거치고 다시 통합되는 쪽으로 구현되어 있습니다.

그런데 아이태니엄의 인스트럭션 구조를 보면 한 프로세서가 몇개의 범용 ALU에서 몇백개 가까운 레지스터들을 각각 액세스 가능하게 되어 있어서 RTL이 생성하는 디펜던시 그래프의 최적화가 프로세서의 최적 운용 조건과는 멀리 떨어져버리게 됩니다.

써보시면 아시겠지만 아이태니엄에서는 컴파일러를 만들기가 어려워 리눅스나 우니도우를 돌렸을 때 성능이 x86이나 x86_64보다 크게 좋지가 않습니다. (라기보다는 x86이 구식 아키텍처를 이어받은 것 치고는 기형적으로 성능이 좋은거가 맞겠지만 8) )

you must know the power of dark side.

페이지

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.