
최근에 나는 내 오래된 노트북(Toshiba Satellite L500-1DT)이 x32보다 x64 기반 Ubuntu 버전에서 더 잘 작동한다는 것을 알았습니다. 내 말은 더 빠르다는 뜻입니다. Adobe Flash 비디오와 앱이 훨씬 더 잘 작동합니다. 소프트웨어 센터 및 APT 앱은 훨씬 원활하게 작동합니다. x64에서는 모든 것이 완벽하게 작동합니다. 냉각 팬은 훨씬 덜 작동합니다(x32처럼 항상 시스템을 냉각시키지는 않음). x32비트 버전에서는 컴퓨터가 과열될 것 같은 느낌이 들었습니다. 2주 전에 x32 버전을 실행했을 때 배터리가 방전되었습니다. 과열 때문인지 우연의 일치인지는 모르겠습니다. 정말 뜨거웠고 매우 느렸습니다. 저는 Celeron(R) 듀얼 코어 CPU T3000 @ 1.80GHz × 2 및 Intel GMA45 비디오 칩셋(256MB 공유 메모리 포함)을 사용하고 있습니다. RAM - 4GB. 우분투 11.10.
이것이 유일한 경우는 아니며 x64가 소위 "권장되는 32비트 버전"보다 훨씬 더 잘 작동한다는 것을 발견한 유일한 시스템입니다. 나는 이것이 정말로 궁금하고, 한 번 답을 알고 싶습니다.
이에 대해 설명하시거나 링크를 안내해주세요.
감사합니다 !
답변1
음, "실행되는 하드웨어에 따라 두 배 빠르거나 그 이상 빠르지 않음"?? 아아, 세상이 이렇게만 돌아가면 좋을텐데.
예를 들어 다음 기사를 살펴보세요.Ubuntu 12.04 LTS: 32비트 및 64비트 성능. 일부 합성 벤치마크는 급격한 성능 향상을 보여주지만, 미미한(10~30%) 향상, 향상 없음 또는 심지어 성능 저하를 보여주는 벤치마크도 많습니다. 이는 일반적으로 벤치마크 실행 이외의 작업을 수행할 때 시스템 성능이 어떻게 될지에 대한 유용한 통찰력을 제공하지 않는 합성 벤치마크일 뿐입니다.
시스템 성능은 "시스템" 병목 현상의 영향을 많이 받으며, 비트가 2배가 되면 성능이 2배가 된다는 식으로 포괄적인 일반화를 할 수는 없습니다.
그럼에도 불구하고 나는 성능이 적어도 어느 정도 더 좋아질 것으로 기대하기 때문에 여전히 64비트 운영 체제를 사용하려고 노력합니다. CPU 레지스터의 크기가 두 배로 늘어나지만 더 중요한 점은 레지스터 수가 x86의 8개에서 x86_64 64비트 모드의 16개로 증가한다는 것입니다. 이를 통해 컴파일러는 잠재적으로 더 빠른 코드를 생성할 수 있습니다. 이것들은 여러 가지가 있습니다명령어 수정이는 아마도 어느 한 인스턴스에서는 중요하지 않지만 시스템 전체에서 사용될 때 유용한 성능 향상을 가져올 수 있습니다.
또한 32비트 x86용으로 컴파일된 프로그램은 "호환성 모드"에서 실행될 수 있으므로 성능 손실이 거의 없습니다.
사람들은 종종 메모리가 4GB 이하인 경우 32비트와 64비트 사이에 차이가 없으므로 64비트 버전을 사용할 이유가 없다고 일반화합니다. 이것은 사실이 아닙니다. CPU의 명령 아키텍처는 하드웨어가 지원하는 경우 64비트 OS 사용을 선호할 정도로 64비트 모드에서 충분히 다릅니다(IMO).
결국, 16비트 모드에서 32비트 CPU를 실행하고 싶지 않을 것입니다. 그렇죠? :-)
답변2
즉, x86에 비해 x86_64 모드에서 더 많은 작동 레지스터를 사용할 수 있습니다. 또, 헷갈리게 이름이 붙어있어요x32x86(_32)이 아닌 x86_64와 순수 x86을 혼합한 ABI입니다. 그리고 제가 링크를 제공한 기사에는 x86_64의 성능이 더 높은 경향이 있는 이유에 대한 좋은 설명이 있습니다.
답변3
이러한 극단적인 차이는 일반적이지 않으며 실제로 64비트 모드의 일반적인 이점과도 관련이 없습니다.
하드웨어와 관련된 일종의 버그나 Ubuntu의 32비트 커널에 의해 유발된 장치 펌웨어의 버그를 보고 계신 것 같습니다.
답변4
64비트 OS는 실행되는 하드웨어에 따라 두 배 더 빠르게 작동합니다. 32비트에서 64비트로 전환하면 더 많은 양의 데이터를 처리하는 OS의 능력이 향상됩니다. 따라서 훨씬 빠르게 작동합니다. 또한 64비트 OS는 32비트 OS보다 더 많은 메모리를 사용합니다. 64비트 레지스터는 2 64 = 18446744073709551616개의 다른 값을 저장할 수 있으며, 이는 18경을 초과하는 숫자입니다. 현재 x86-64 프로세서는 48개의 물리적 주소 라인을 사용합니다. 따라서 64비트 메모리 주소를 가진 프로세서는 264테라바이트의 바이트 주소 지정 가능 메모리에 직접 액세스할 수 있습니다.