64bit가 32bit보다 느린 느낌이 드는 이유는 뭘까요?

이한길의 이미지

갑자기 내켜서 컴퓨터를 밀어버리고 64bit용 우분투7.10을 내려 받아 설치했습니다..
근데 웬지 더 느린거 같다는 느낌이 드네요.. 특히 VMPlayer를 쓸때와 이클립스를 쓸때..
더 그러합니다. 전에 건성으로 봐서 몰랐는데 이클립스가 64bit용이 있더군요.
그런데 이걸 쓰는데... 마찬가지로 느립니다..

http://kldp.org/node/87719 의 댓글에 보면 이런 말이 있습니다..

sangwoo wrote:
딴얘기입니다만, 어딘가의 메일링리스트에서 x86_64 버전은 context switching의 overhead가 더 커서, x86버전보다 꼭 빠르다고는 할 수 없다는 이야기를 본 거 같은데요. 메모리가 4GB미만이라면, x86_64 버전을 설치했을 때 ㅌx86버전에 비해서 성능의 향상이 있나요?

그래서 일까요?

64bit이기에 해줘야 하는 것들도 번거롭다는 생각이 들기 시작합니다.
계산량이 많은 프로그램을 쓰는것도 아니고 다시 x86으로 돌아갈까합니다..

다른 분들은 어떠신지 궁금하네요..

iris의 이미지

현재의 x86-64 구조의 프로세서들의 아키텍처 자체도 한계가 있습니다.

Intel은 Pentium D는 물론이고 Core2 Duo/Quad조차 x86 모드가 x86-64보다 더 성능이 잘 나오며,
(이는 인텔도 잘 알고 있으며, 개량하려고 노력하는 부분입니다.)
AMD조차 좋다고 말할 수 있는 정도는 아닙니다.

사실 지금의 x86-64용 프로세서들은 '성능 향상'보다는 '4GB 메모리 제한 탈피'에 더 무게를 두고 있어
성능면에서는 어느 정도 기대치를 낮추는 것이 필요합니다. 대신 시간이 지나 새로운 아키텍처가 나오면
상황은 나아질 여지가 충분합니다.

=================================

이 세상은 썩어있다!

=================================

이 세상은 썩어있다!
- F도 F시 시가지 정복 프로젝트

홈페이지: 언더그라운드 웹진 18禁.net - www.18gold.net

이한길의 이미지

i386으로 다시 설치했습니다.
64bit일때보다 vmplayer와 eclipse가 무척 빨라서 좋네요..
아무래도 아직까지는 환경이 64bit용을 쓰긴 좀 그런가봅니다..

맘을 굳게 먹게 도와준 iris님 고맙습니다..*^^*
----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.xo.st
http://hangulee.egloos.com/

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

익명 사용자의 이미지

혹 64bit의 vmware나 eclipse가 32bit 바이너리로 컴파일 되었을 가능성은 없나요? 저도 직접 돌려보지 않아 잘 모릅니다만 64비트환경에서 32비트 바이너리 실행이 가능하다는 얘기를 들은 것 같아서요.

wkpark의 이미지

ldd 해보면 알 수 있겠네요.

일례로 인텔 포트란 64비트용을 설치했는데, 컴파일러가 32비트 실행파일이더군요.

온갖 참된 삶은 만남이다 --Martin Buber

blkstorm의 이미지

그렇지 않아도 x86_64의 성능에 대해서 약간의 의문을 갖고 있었는데, 그냥 x86으로 설치할 걸 그랬군요. 쩝

마음이 슬슬 흔들립니다. 흠. 어떻게 하면 가능한한 현재 시스템과 가장 유사하게 x86으로 옮겨탈 수 있을까요.

젠투를 쓰는데, world 프로파일하고 스냅샷만 샥 옮기면 한방에 될것도 같은데...

아, 그리고 32비트 바이너리는 64비트 OS에서도 실행은 가능합니다. 64비트 파이어폭스에서 32비트 플래쉬 플레이어를 돌리는 것이 그 기능을 이용한 것이지요. 무슨 CPU의 플래그를 건드려서 32비트 실행모드바꾼뒤에로 바이너리 실행을 한다고...??

cppig1995의 이미지

AMD64 프로세서의 Long Mode에는 Compatibility Mode와 64-Bit Mode가 있습니다.
이 중 Compatibility Mode(호환성 모드)를 사용하면 응용 프로그램의 재컴파일이 필요 없다는군요 :)
두 모드 사이의 전환은 CS 세그먼트 레지스터의 L 비트로 결정될겁니다 (아마도)



It's High Noon...

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

OpenSnake의 이미지

Intel은 Pentium D는 물론이고 Core2 Duo/Quad조차 x86 모드가 x86-64보다 더 성능이 잘 나오며,
(이는 인텔도 잘 알고 있으며, 개량하려고 노력하는 부분입니다.)
AMD조차 좋다고 말할 수 있는 정도는 아닙니다.

좀 충격적인데요....32비트로 갈아타야겠네요..

--------------------------------------------
혼자있고 싶습니다. 모두 지구밖으로 나가주세요.

--------------------------------------------
혼자있고 싶습니다. 모두 지구밖으로 나가주세요.

익명 사용자의 이미지

32bit에서 64bit시대로 이행된다는 것의 의미는, "속도의 진보"가 아닙니다.

한마디로 "Address공간의 확장 및 보다 대규모의 운용"이라고 봐야합니다.

단지 속도의 이점때문에 64bit가 필요하다고 생각한다면, 가장 크고 중요한 맥락을 놓치는 것입니다.

따라서, 64bit는 아직까지는 개인용이라기 보다는 기업용에 적합합니다.

지금까지 데스크탑용으로 개발된 application software들 중에 제대로된 64bit-oriented native software가 없기 때문에 속도가 느린 것일 수 도 있지만, 사실은 "속도향상"의 필요성때문에 64bit가 필요하게 된 것이 절대로 아닙니다. 다른 이유때문에 64bit가 필요하게 된 것입니다.

wkpark의 이미지

좀 의외군요..

저역시 데탑으로 리눅스는 잘 안쓰고 서버 클러스터(AMD 옵테론 246)에 Fedora core6를 쓰고있고,
데탑은 거의 터미널로 씁니다 :>

계산할 때 4GB이상 메모리가 필요한 경우가 많으므로 32bit 리눅스는 사용을 전혀 고려 안했고,
바로 옆방 연구실의 32bit 리눅스 클러스터보다 체감 2배이상 빨랐습니다~ (이틀 걸릴 계산이 하루도 채 되지않아 끝난다거나 등등)

데탑일때 64비트가 체감이 느린 이유는 CPU 자체의 성능보다는 주변장치(HDD나 비디오)의 성능에 더 크게 좌우되기때문에 그런게 아닐까 하고 추측해봅니다.

온갖 참된 삶은 만남이다 --Martin Buber

ssehoony의 이미지

계산량이 많다는 것은 64bit 자료형 계산이 많은건가요? float가 아닌 double 나 int나 int32 가 아닌 long long int 나 int64 와 같은 것들요. 그런거라면 64bit 환경에서 두두러진 성능향상을 보여줄 듯 하네요.

junichel의 이미지

어떤 면에서 64bit가 빠르고 어떤면에서 32bit가 빠른지 확실히 알 수 있는 방법이 없을까요?
누군가는 빠르다고 하고 누군가는 느리다고 하는 것을 보면 활용분야가 다르기 때문일 수도 있고, 최적화되지 않은 프로그램들 때문일 수도 있는데 확실히 알 수 있는 방법이 없을까요?

개인적으로 ubuntu 64bit를 쓰고 있지만 체감속도라던지 이런 것은 잘 모르겠네요. gutsy와서 좀 느려졌다는 느낌이 들뿐이네요.
-----------------
끝까지 타오르는거다!

--
끝까지 타오르는거다!

only2sea의 이미지

64비트 포인터를 쓰는 시스템이라고 가정하고 포인터 배열 같은 것을 루프로 돈다고
가정할 때 32비트로 컴파일 한 것보다 64비트로 도는 경우에 2배의 공간이 필요하게
되므로 캐시가 절반밖에 없는 것과 같은 효과가 나게 될 겁니다. 즉, 얻는 것이 없다는
것이지요.

4바이트를 초과하는 데이터를 계산해야 하거나 하는 과학 기술용 프로그램이라거나
그것의 장점을 충분히 활용할 수 있게 코딩되어 있는 것이 아니면, 빠를 이유가 전혀
없겠죠. 32비트용 어플을 64비트에서도 돌아가도록 만들어 놓은 것들이 특히 그렇지요.
원래 4바이트 표현하던 포인터등을 8바이트로 바꾼다고 하거나 4바이트 int를 8바이트로
바꾼다고 해서 속도가 나아지지 않겠지요. 오히려 느려질 가능성은 있어도요...
레지스터도 8바이트가 된다고 해서 좋을 것이 없겟지요. 한꺼번에 그만한 것이 필요하지
않으면요. (제 시스템에서 컴파일하면 int는 4바이트고 포인터만 8바이트입니다.)

반대로 8바이트 스케일의 계산을 하던 프로그램들을 32비트에서 돌아가게 만든다면
프로그램도 수정을 해야 될 테고 결과적으로 32비트에서 더 느리게 돌 겁니다.
그런데 일반 데탑용 프로그램에서는 그런 것이 잘 없죠.

오히려 큰 것을 계산하기 위하여 4바이트 int를 몇개 묶어서 쓰던 프로그램들도
64비트용으로 포팅할 때 노력을 기울이지 않으면 8바이트 중에서 남은 4바이트는
쓰지도 않으면서 똑같은 짓을 하고 있을 겁니다. (어쨌든 동작은 할 테니... 단지 돌도록
만들어 놓은 것이되는 거죠.) 컴파일러가 이걸 알아서 다 해 주면 참 좋겠지만...
그러면 아예 코딩도 컴파일러가 알아서 해 주면 좋겠죠.. 으흐..

데스크탑용으로 amd ahlon64를 돌리는 제 입장에서 말씀드리겠습니다.
와인 같은 것은 무지 느립니다. 컴파일 해서 설치하였지만 마찬가지입니다. 모르지만
아마도 32비트 API를 구현해 놓은 것인데 어떤 요인으로 인하여 오버헤드가 크게
생기는 이른 바 '에뮬레이션' 해야 되는 부분이 일부 생기지 않을까 생각해 봅니다.
아니면 그렇게 하지 않을 수도 있지만 시간이 없어서 최적화 하지 않은 부분이 있을
수 있겠구요. (와인보다 vmware 쓰는게 반응 속도가 훨씬 빠릅니다. -_-)

웹 브라우저의 플러그인들은 굉장히 무겁고 불안하게 동작합니다. 플래시, 자바 같은
것들이 그렇습니다.

예전에 리눅스도 괜찮은 데탑 OS의 선택이라는 글이 올라왔었는데, "당신이 영어를 써야
하고... 등등"의 내용이 있었는데 거기에 "32비트 커널을 이용하고..."도 추가되어야 합니다. :)

그치만 암담한 것은 아닙니다. 날이 갈수록 굉장히 좋아지고 있습니다. 전, 별다른 장점은
없지만 그냥 재미로 제 데탑을 64비트로 돌리고 있습니다.

p.s. 전 아키텍쳐 전문가가 아니므로 잘 아시는 분이 지적해 주셨으면 합니다. :)

블로그: http://turtleforward.blogspot.com

coyday의 이미지

저도 경험적으로 64비트가 32비트보다 빠르다는 느낌을 받은 적이 없습니다.
그게 OS든 소프트웨어든 말이죠. 다만 메모리 사용량이 획기적으로 늘어난다는 게 64비트의 좋은 점인데..
개인적인 수준의 업무라면 크게 차이가 없을 것 같네요.

북한산(X) 삼각산(O) 백운대(X) 백운봉(O)

북한산(X) 삼각산(O) 백운대(X) 백운봉(O)

Necromancer의 이미지

샘프론 2800에 젠투 amd64 쓰면서 답답하다는 느낌 받았는데 이런 이유가 있었군요

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

지리즈의 이미지

여러 모로 정당한 비교는 될 수 없지만, Amd64 Dualcore 3800+에
Kubuntu (x86)(7.04? 지워서 기억안남)과 Gentoo(Amd64)를 듀얼 부팅으로 사용했는데...
체감상으로는 Gentoo쪽이 더 부드럽고 약간씩 더 빠르더군요.(특히 베릴 에니메이션)
mplayer 같은 경우는 특별한 경우는 확연한 차이가 나기도 하구요.
이게 mplayer를 cpu dectection으로 돌려서 차이가 나는 것인지 아니면
x86, x86-64간의 차이인지는 잘 모르겠습니다.
컴파일도 chost가 x86보다는 x86-64쪽이 조금씩 빠릅니다..

Gentoo를 x86으로 깔아서 amd64와 비교해 보고 싶기는 한데,
x86에서는 x86_64용 바이너리가 실행되지 않는 관계로
x86쪽으로 부팅했을때 x86_64쪽으로 새끼치기를 할 수 없기 때문에
엄두를 내지 못하고 있습니다.

그런데 질문이 있습니다.

다른 배포본도 그렇게 할 수 있지만,
특히 Gentoo같은 경우는 스스로 커널을 컴파일하게 됩니다.

64bit cpu에서 x86시스템을 구성할때 커널을 x86_64(amd64...)로 하시나요?
아니면, x86(686)으로 하시나요?

Gentoo에서는 wine같은 경우는 amd64라도 x86으로 컴파일 됩니다.
만약, 커널은 amd64용이고 모든 시스템은 x86일 경우
amd64로 시스템을 구성하고, 일부만 x86으로 돌릴때 이 x86바이너리(예를 들어 wine)은
두 시스템간에 차이가 발생하나요?

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

지리즈의 이미지

eclipse 만큼은 amd64 좌절이더군요.

컴파일 하지는 않고, eclipse 사이트에서 바이너리를 그냥 받아서 사용하고 있습니다.

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

fifnir의 이미지

저도 32비트 쿠분투와 64비트 젠투 둘다 사용해 봤는데
쿠분투에서 eclipse가 너무 느려서 도저히 쓸 수 없다고 생각해서 밀어버렸습니다.
반면에 amd64에서의 eclipse는 꽤 쾌적한 편입니다. 바이너리버젼이 아니라 컴파일해서 쓰는데요.

이한길의 이미지

컴파일 해서 쓰시니까 그런게 아닐까요?
저도 그냥 받아서 써 봤는데.. 도저히 느려서.. 방법이 없었습니다...

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.xo.st
http://hangulee.egloos.com/

----
먼저 알게 된 것을 알려주는 것은 즐거운 일이다!
http://hangulee.springnote.com
http://hangulee.egloos.com

tsangel의 이미지

vector계산이은 SIMD로 묶어서 처리하면 무지 빨라지긴 하겠더군요

하지만 regular expression으로 스트링처리하는 건 64비트로 처리한다고 이득보는게 가능할까요?
오히려 32비트때보다 더 오버헤드만 생기는게 아닌지 모르겠습니다.
... 이렇다면 웹서버는 64비트가 아니라 그냥 32비트로 설치하는게 나을지도 모르겠네요.

열심히 살자

김정균의 이미지

웹서버라면 굳이 64bit 로 갈 이유가 없을 것 같습니다. 오히려 memory 낭비만 심해지는 것 같죠.

실제 회사에서 32bit/64bit 테스트 (sayclub/pmang 웹서버)를 해 보았었는데 32/64 간의 성능 차이는 없었습니다. 결국 asign 되는 메모리양만 64Bit 가 더 많이 차지한다는 결론 비슷하게..

다만,, 선택은 64bit 로 했습니다. 관리상의 이유로..

ironiris의 이미지

한 업체에서 메일서버를 쓴다고 해서 메일서버는 CPU의 부하를 덜받으니 대충 구하시고 메모리만 빵빵하게 달아놓으시라고 했더니...

제온8cpu에(쿼드코어 2개인듯) 램 8기가, HDD는 1테라를 달았더군요. --;;

그건 글코... 미리 OS를 설치할때 안녕리눅스를 설치하시라고 신신당부했는데.... ^^;; 제가 미리 컴파일해놓은 것이 안녕리눅스용이라.. ㅎㅎ

다 되었다고 하셔서 들어가보니 메모리가 3.5기가 정도 되길래.. 음... 4기가 다셨나.. 하면서 kernel-bigmem 을 설치하고 재부팅 하니 8기가로 표시되더군요.

역시 배포본은 안녕리눅스가 최고!! ^^;

ps. XP도 커널 업그래이드로 고용량 메모리 좀 쓸수 없으려나요....

정태영의 이미지

SIMD 얘기라면 sse register 가 128bit, mmx register 가 64bit 으로 고정되있으므로 64bit 과 128bit 의 차이가 그리 크지는 않을 것 같습니다. :)

단 general purpose register 들이 64bit 가 되어준다면 sse/mmx register 에 있는 값을 임시로 백업할 일이 있을 때 gpr 을 사용할 수 있으므로 조금 더 편리해질 수도 있겠지만;;

뭐 하여튼 저런건 컴파일러에서 자동으로 처리될만한 것들도 아니고 하니 아주 일부 영역을 제외하고는 그리 큰 차이가 나지 않을 것 같네요. :)

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

g0rg0n의 이미지

코어2듀오 노트북에 젠투 amd64/x86 둘다 설치해 봤는데
성능향상은 못느끼겠더군효;

결국 amd64가 아직은 약간 불안정해서 x86쓰고 있습니다

18

taznux의 이미지

전공의 특성상 MATLAB으로 소수점 반복계산을 많이 하는편인데

32비트 보다 64비트로 했을 경우 좀더 빠르더군요..

계산용으로 64비트 리눅스 잘쓰고 있습니다..

sDH8988L의 이미지

아마도 double의 길이가 64bit이라서 그런 거 아닐까요?

아무래도 32bit에서 나눠 처리하는 것보다 64bit에서 한방에 처리하는 것이 더 빠를 듯 한데...

MoonJu의 이미지

그냥 유저입장에선...

32bit가 더 빠르게 느껴지더라구요-_-

======================================
솔직함은 배려의 측면에서 보면 양날의 칼이다.

ori9의 이미지

데스크탑은 32bit, 웍스테이션에는 64bit으로 깔아서 쓰고 있습니다.
상용수치해석툴이 64bit을 지원하면서부터 2배이상 빨라지더군요.
그 뒤로 몇가지 불편함에도 불구하고 산수시키는 컴퓨터는 64비트로 하고 있습니다.
어차피 원격접속해서 돌리니 크게 불편함은 없습니다.

데스크탑용으로는 아직은 이득보다는 손해가 많은 것 같습니다.

only2sea의 이미지

어느시점부터인지 모르겠지만 갑자기 와인이 무지하게 빨라졌습니다.
이것이 정상 속도인 것 같네요. 언제 업데이트부터 이렇게 되었는지는
모르겠습니다.

블로그: http://turtleforward.blogspot.com