compile VS rpm install

ar의 이미지

제목 그래로 입니다.

i386 rpm은 호환성을 목표로 새로 생겨난 연산 instruction 을 사용하지

않기에 compile 설치와 비교하였을때 매우 뒤지는 성능의 결과를 보이는

것은 쉽게 알겠습니다만..

i686 rpm 설치를 하였을때와 비교하여도 compile 설치가 훨씬 더 우수한

성능을 나타내는 이유는 어떠한 것들이죠?

hys545의 이미지

ar wrote:
제목 그래로 입니다.

i386 rpm은 호환성을 목표로 새로 생겨난 연산 instruction 을 사용하지

않기에 compile 설치와 비교하였을때 매우 뒤지는 성능의 결과를 보이는

것은 쉽게 알겠습니다만..

i686 rpm 설치를 하였을때와 비교하여도 compile 설치가 훨씬 더 우수한

성능을 나타내는 이유는 어떠한 것들이죠?


rpm 만들때 환경하고 설치환경이 똑같지 않기 때문입니다.
라이브러리도 차이나고
그래서 컴파이라면 자기 컴에 최적화된 실행파일이 나옵니다.

즐린

jj의 이미지

ar wrote:
제목 그래로 입니다.

i386 rpm은 호환성을 목표로 새로 생겨난 연산 instruction 을 사용하지

않기에 compile 설치와 비교하였을때 매우 뒤지는 성능의 결과를 보이는

것은 쉽게 알겠습니다만..

정말 '매우' 차이가 나나요? 실험 데이터라도 있으신지...
저도 차이가 날것이라고 생각했지만, 제 결론은 비슷하다/모르겠다 였거든요...

--
Life is short. damn short...

jforce의 이미지

저역시 궁금합니다.

정말 차이가 그렇게 큽니까?

보통 대부분의 경우에는 차이가 3%이내라고 생각하고 있었는데...

doogle의 이미지

저도 궁금합니다만..

근데 i686이면 인텔 펜티엄2 이상이 되던가요?
386은 386, 486은 486이고.. 586은 펜티엄I..

왠지 당연시 되었던 단어인데 갑자기 생각하려니 새삼 새롭군요...
i686이면 아무래도 펜티엄II (& 셀러론) 급을 의미하는거 같은데..

현재는 펜티엄 3, 및 펜티엄 4가 나와있고 추가된 명령어셋도 있기에..
컴파일러는 3나 4급의 추가 명령어셋을 지원할지는 몰라도..
(음.. 특히 에슬론같은)

i686인 경우엔 이제는 상당히 일반적인 펜2급 명령어셋만 이용해서 컴파일한 바이너리라고 생각되네요. 그래서 실제 펜3급이상의 컴에서 적절히 최적화 옵션(?)을 주고 컴파일하면 좀더 최적화된 바이너리가 나올거 같은데요. (요새는 에슬론도 따로 최적화 컴파일이 되는거 같은데... 근데 이런거 사실 멀티미디어관련된 프로그램 컴파일에만 어느정도 적용되는게 아닌지.. 쩝.. MMX, SSE, 3DNow! 같은 멀티미디어 명령어셋이 절실히 필요한 libSDL이나 Mplayer같은 거에나 적용되는거 아닐까요?)

요즘엔 리눅스 못쓰는지라..
예전에 백수때 펜2에서 놀던 당시에는 i686 패키지 그대로 써도 된다고 생각했는데... 요즘엔 약간 다른 느낌이 들기도 하는군요..
왠지 직접 컴파일한게 더 빠를거 같은 느낌이 든다는.. ^^;;

덧> 근데 펜4 2.4C 급 이상의 CPU가 가지는 하이퍼스레딩기능을 리눅스(정확히는 컴파일러라고 해야하나? ^^;; )에서 지원하나요? 고것참.. 구미가 당기는 기능이던데... ㅎㅎ

doogle.

ihavnoid의 이미지

저도 그게 좀 의문이 들었습니다. 그래서 한번 openssl 라이브러리로 테스트를 해 봤습니다. 별다른 향상이 없더군요.

약간의 꽁수를 부려서 gcc가 아니라 icc (intel C compiler)로 빌드를 해 보니까, 한 5퍼센트 정도의 향상이 있었습니다. SSE2 instruction 다 켜고 optimization을 pentium 4에 가장 뛰어나도록 했는데도요.

그런데 그 성능향상은 'customization' 덕택이 아니라 그냥 단순히 컴파일러의 성능 차이 때문에 그런 게 아닐까 하는 생각입니다. 굳이 재컴파일 한다고 해서 큰 영향을 반들 게 아닐 것 같다는 생각입니다.

커널은 잘 모르겠습니다. 그렇지만 application들은..... 으음..

저같으면 5퍼센트 정도(물론 이것도 대부분의 경우에는 1퍼센트 미만이겠지만) 의 성능 향상을 위해서 재컴파일을 하는 것보다, 그 시간에 돈 조금 더 벌어서 프로세서를 업글하거나 램을 더 달겠습니다.. -_-

doogle wrote:

덧> 근데 펜4 2.4C 급 이상의 CPU가 가지는 하이퍼스레딩기능을 리눅스(정확히는 컴파일러라고 해야하나? ^^;; )에서 지원하나요? 고것참.. 구미가 당기는 기능이던데... ㅎㅎ

doogle.

매우 잘 지원합니다. 제가 듀얼 제온 2.4기가를 쓰는데 4개의 프로세서로 나옵니다. top 찍어보면 cpu가 4개로 나옵니다. 참고로 제가 쓰는 것은 레드햇 9의 bigmem 커널입니다. 그리고 하이퍼쓰레딩은 컴파일러와 별 관계가 없는 것으로 알고 있습니다. 오히려 OS가 영향이 있다고 알고 있습니다.

Consider the ravens: for they neither sow nor reap; which neither have storehouse nor barn; and God feedeth them: how much more are ye better than the fowls?
Luke 12:24

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.